IRP-Based operazioni di I/O che rispettano i flag dell'oggetto dispositivo

Il metodo di buffering per le operazioni di I/O basate su IRP seguenti è determinato dal valore del membro Flags della struttura DEVICE_OBJECT per il volume del file system:

  • 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

I flag DO_BUFFERED_IO e DO_DIRECT_IO nel membro Flags vengono usati come segue:

  • Se il flag DO_BUFFERED_IO è impostato, l'operazione usa l'I/O memorizzato nel buffer.

  • Se il flag DO_DIRECT_IO è impostato e il flag di DO_BUFFERED_IO non è impostato, l'operazione usa l'I/O diretto.

  • Se nessun flag è impostato, l'operazione non usa né l'I/O diretto né quello bufferizzato.

Per altre informazioni sui flag di oggetto dispositivo, vedere DEVICE_OBJECT e Inizializzazione di un oggetto Device.

Si noti che IRP_MJ_READ e IRP_MJ_WRITE possono essere operazioni di IRP o I/O veloci. Quando sono basati su IRP, il metodo di buffering viene determinato dai flag dell'oggetto dispositivo, come descritto in precedenza. Quando queste operazioni di I/O sono veloci, non usano mai né l'I/O con buffer né quello diretto. Per altre informazioni sulle operazioni di I/O che possono essere basate su IRP o operazioni di I/O veloci, vedere Operazioni che possono essere IRP-Based o operazioni di I/O veloci.