Partilhar via


IRP-Based operações de E/S que obedecem aos sinalizadores de objeto do dispositivo

O método de buffer para as seguintes operações de E/S baseadas em IRP é determinado pelo valor do membro Flags da estrutura DEVICE_OBJECT para o volume do sistema de arquivos:

  • IRP_MJ_DIRECTORY_CONTROL

  • IRP_MJ_QUERY_EA

  • IRP_MJ_QUERY_QUOTA

  • IRP_MJ_READ

  • IRP_MJ_SET_EA

  • IRP_MJ_SET_QUOTA

  • IRP_MJ_WRITE

Os sinalizadores DO_BUFFERED_IO e DO_DIRECT_IO no membro Flags são usados da seguinte maneira:

  • Se o sinalizador DO_BUFFERED_IO estiver definido, a operação usará E/S em buffer.

  • Se o sinalizador DO_DIRECT_IO estiver definido e o sinalizador DO_BUFFERED_IO não estiver definido, a operação usará E/S direta.

  • Se nenhum sinalizador for definido, a operação não usará E/S direta nem buffer.

Para obter mais informações sobre sinalizadores de objeto do dispositivo, consulte DEVICE_OBJECT e Inicializando um objeto device.

Observe que IRP_MJ_READ e IRP_MJ_WRITE podem ser operações de E/S rápidas ou baseadas em IRP. Quando eles são baseados em IRP, o método de buffer é determinado pelos sinalizadores de objeto do dispositivo, conforme descrito acima. Quando essas operações são rápidas de E/S, elas sempre não usam E/S direta nem buffer. Para obter mais informações sobre operações de E/S que podem ser operações de E/S rápidas ou baseadas em IRP, consulte Operações que podem ser IRP-Based ou E/S rápida.