Freigeben über


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.