Operações que podem ser IRP-Based ou E/S rápida
Os seguintes tipos de operações podem ser operações de E/S rápidas ou baseadas em IRP:
IRP_MJ_DEVICE_CONTROL. (Observe que IRP_MJ_INTERNAL_DEVICE_CONTROL sempre é baseado em IRP.)
IRP_MJ_QUERY_INFORMATION. Essa operação poderá ser rápida de E/S se o parâmetro FileInformationClass for FileBasicInformation, FileStandardInformation ou FileNetworkOpenInformation.
IRP_MJ_READ. Os drivers de minifiltro podem definir o sinalizador FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO na estrutura FLT_OPERATION_REGISTRATION para evitar receber operações de IRP_MJ_READ de E/S rápidas e leituras baseadas em IRP armazenadas em cache.
IRP_MJ_WRITE. Os drivers de minifiltro podem definir o sinalizador FLTFL_OPERATION_REGISTRATION_SKIP_CACHED_IO na estrutura FLT_OPERATION_REGISTRATION para evitar receber operações rápidas de E/S IRP_MJ_WRITE e gravações baseadas em IRP armazenadas em cache.
Quando qualquer uma dessas operações é uma operação de E/S rápida, ela sempre não usa E/S em buffer nem direta, mesmo que a operação baseada em IRP equivalente use um método de buffer diferente.
Quando IRP_MJ_DEVICE_CONTROL é uma operação de E/S rápida, ela sempre não usa E/S em buffer nem direta, independentemente do tipo de transferência do IOCTL.
Embora IRP_MJ_LOCK_CONTROL possa ser uma operação de E/S rápida ou baseada em IRP, ela não tem buffers.