Question about data transfer size limits using mini-filter communication ports

I am being afforded the chance to design and re-write a legacy filter
driver using the IFS kit. The current driver talks to user space via
ioctl(2) calls and one of these calls is used to provide an interface to
read the contents of a file so that the contents of the file can be
scanned for malicious content.

I would like to use the communication ports that are available in the
filter manager in the new driver. For most of the communication that
now takes place (configuration/status information), communication ports
are a perfect fit. My concern is transferring what could be, very large
chunks of data at one time (currently, reads of up to 32k are being
performed through the ioctl(2) mechanism).

Given the potential size of the reads, is using a communication port to
move this data into user-space an efficient/proper use for a
communication port or should we fall-back to a more traditional method?