Compartilhar via


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.