Vorgänge, die IRP-Based oder schnelle E/A-Vorgänge sein können
Die folgenden Arten von Vorgängen können IRP-basierte oder schnelle E/A-Vorgänge sein:
IRP_MJ_DEVICE_CONTROL. (Beachten Sie, dass IRP_MJ_INTERNAL_DEVICE_CONTROL immer IRP-basiert ist.)
IRP_MJ_QUERY_INFORMATION. Dieser Vorgang kann schnell sein, wenn der FileInformationClass-ParameterFileBasicInformation, FileStandardInformation oder FileNetworkOpenInformation lautet.
IRP_MJ_READ. Minifiltertreiber können das FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO-Flag in der FLT_OPERATION_REGISTRATION-Struktur festlegen, um schnelle E/A-IRP_MJ_READ-Vorgänge und zwischengespeicherte IRP-basierte Lesevorgänge zu vermeiden.
IRP_MJ_WRITE. Minifiltertreiber können das FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO-Flag in der FLT_OPERATION_REGISTRATION-Struktur festlegen, um schnelle E/A-IRP_MJ_WRITE-Vorgänge und zwischengespeicherte IRP-basierte Schreibvorgänge zu vermeiden.
Wenn einer dieser Vorgänge ein schneller E/A-Vorgang ist, werden immer weder gepufferte noch direkte E/A-Vorgänge verwendet, auch wenn der entsprechende IRP-basierte Vorgang eine andere Puffermethode verwendet.
Wenn IRP_MJ_DEVICE_CONTROL ein schneller E/A-Vorgang ist, verwendet er immer weder gepufferte noch direkte E/A, unabhängig vom Übertragungstyp der IOCTL.
Obwohl IRP_MJ_LOCK_CONTROL ein IRP-basierter oder schneller E/A-Vorgang sein kann, verfügt er über keine Puffer.