IRP ベースまたは高速 I/O とすることが可能な操作
次の種類の操作は、IRP ベースまたは高速 I/O 操作です。
IRP_MJ_DEVICE_CONTROL。 (IRP_MJ_INTERNAL_DEVICE_CONTROL は常に IRP ベースであることに注意してください)。
IRP_MJ_QUERY_INFORMATION。 FileInformationClass パラメーターが FileBasicInformation、FileStandardInformation、または FileNetworkOpenInformation の場合、この操作は高速 I/O になります。
IRP_MJ_READ。 ミニフィルター ドライバーは、高速 I/O IRP_MJ_READ 操作とキャッシュ IRP ベースの読み取りを受け取らないように、FLT_OPERATION_REGISTRATION 構造体で FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO フラグを設定できます。
IRP_MJ_WRITE。 ミニフィルター ドライバーは、高速 I/O IRP_MJ_WRITE 操作とキャッシュ IRP ベースの書き取りを受け取らないように、FLT_OPERATION_REGISTRATION 構造体で FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO フラグを設定できます。
これらの操作のいずれかが高速 I/O 操作である場合、同等の IRP ベースの操作で別のバッファリング方法が使用されている場合でも、バッファー処理もダイレクト I/O も常に使用されません。
IRP_MJ_DEVICE_CONTROL が高速 I/O 操作である場合、IOCTL の転送の種類に関係なく、常にバッファー I/O も直接 I/O も使用されません。
IRP_MJ_LOCK_CONTROL IRP ベースまたは高速 I/O 操作を使用できますが、バッファーはありません。