FLT_PARAMETERS per l'unione IRP_MJ_MDL_READ

Quando FLT_IO_PARAMETER_BLOCK viene utilizzato il membro dell'unione seguente FLT_PARAMETERS. MajorFunction è IRP_MJ_MDL_READ.

Sintassi

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    LARGE_INTEGER           FileOffset;
    ULONG POINTER_ALIGNMENT Length;
    ULONG POINTER_ALIGNMENT Key;
    PMDL                    *MdlChain;
  } MdlRead;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Membri

  • MdlRead: struttura contenente i membri seguenti.

  • FileOffset: avvio di byte all'interno del file memorizzato nella cache.

  • Lunghezza: lunghezza, in byte, dei dati da leggere dal file memorizzato nella cache.

  • Chiave: valore della chiave associato a un blocco di intervallo di byte nel file di destinazione. Se l'intervallo da leggere si sovrappone o è un intervallo secondario di un intervallo bloccato esclusivamente all'interno del file, questo parametro deve essere la chiave per tale blocco esclusivo. Il blocco esclusivo deve essere mantenuto dal processo padre del thread chiamante; in caso contrario, questo parametro viene ignorato.

  • MdlChain: puntatore a una variabile che riceve un puntatore a una catena di uno o più elenchi di descrittori di memoria (MDL) che descrivono le pagine contenenti i dati da leggere.

Osservazioni:

IRP_MJ_MDL_READ è un'operazione di I/O veloce. Fa la stessa cosa di IRP_MJ_READ + IRP_MN_MDL ad eccezione della differenza seguente:

  • L'operazione basata su IRP configura la memorizzazione nella cache nel file se non è già memorizzata nella cache prima di eseguire il lavoro MDL.
  • L'operazione di I/O veloce ha esito negativo se il file non è già memorizzato nella cache.

La struttura FLT_PARAMETERS per le operazioni di IRP_MJ_MDL_READ contiene i parametri per un'operazione di I/O MdlRead veloce. L'operazione è rappresentata da una struttura (FLT_CALLBACK_DATA), con i parametri dell'operazione nella struttura FLT_IO_PARAMETER_BLOCK a cui punta Iopb.

Se una richiesta di I/O veloce IRP_MJ_MDL_READ ha esito negativo, l'autorità emittente dell'I/O determina come eseguire nuovamente la richiesta. Ad esempio, la richiesta potrebbe essere riemissione come operazione basata su IRP usando IRP_MJ_READ + IRP_MN_MDL.

Requisiti

Tipo di requisito Requisito
Intestazione Fltkernel.h (include Fltkernel.h)

Vedi anche

FLT_CALLBACK_DATA

FLT_IO_PARAMETER_BLOCK

FLT_IS_FASTIO_OPERATION

FLT_IS_FS_FILTER_OPERATION

FLT_IS_IRP_OPERATION

FLT_PARAMETERS