Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The following types of operations can be IRP-based or fast I/O operations:
IRP_MJ_DEVICE_CONTROL. (Note that IRP_MJ_INTERNAL_DEVICE_CONTROL is always IRP-based.)
IRP_MJ_QUERY_INFORMATION. This operation can be fast I/O if the FileInformationClass parameter is FileBasicInformation, FileStandardInformation, or FileNetworkOpenInformation.
IRP_MJ_READ. Minifilter drivers can set the FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO flag in the FLT_OPERATION_REGISTRATION structure to avoid receiving fast I/O IRP_MJ_READ operations and cached IRP-based reads.
IRP_MJ_WRITE. Minifilter drivers can set the FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO flag in the FLT_OPERATION_REGISTRATION structure to avoid receiving fast I/O IRP_MJ_WRITE operations and cached IRP-based writes.
When any of these operations is a fast I/O operation, it always uses neither buffered nor direct I/O, even if the equivalent IRP-based operation uses a different buffering method.
When IRP_MJ_DEVICE_CONTROL is a fast I/O operation, it always uses neither buffered nor direct I/O, regardless of the IOCTL's transfer type.
Although IRP_MJ_LOCK_CONTROL can be an IRP-based or fast I/O operation, it has no buffers.