FLT_PARAMETERS per l'unione IRP_MJ_MDL_WRITE_COMPLETE
Quando FLT_IO_PARAMETER_BLOCK viene utilizzato il membro dell'unione seguente FLT_PARAMETERS. MajorFunction è IRP_MJ_MDL_WRITE_COMPLETE.
Sintassi
typedef union _FLT_PARAMETERS {
... ;
struct {
LARGE_INTEGER FileOffset;
PMDL MdlChain;
} MdlWriteComplete;
... ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;
Membri
MdlWriteComplete: struttura contenente i membri seguenti.
FileOffset: avvio di byte all'interno del file memorizzato nella cache.
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 che devono essere scritti nel file memorizzato nella cache.
Osservazioni:
IRP_MJ_MDL_WRITE_COMPLETE è un'operazione di I/O veloce. Fa la stessa cosa di IRP_MJ_WRITE + IRP_MN_COMPLETE_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_WRITE_COMPLETE contiene i parametri per un'operazione di I/O MdlWriteComplete veloce. Questa operazione è rappresentata da una struttura di dati di callback (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_WRITE_COMPLETE non riesce, 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_WRITE + IRP_MN_COMPLETE_MDL.
Requisiti
Tipo di requisito | Requisito |
---|---|
Intestazione | Fltkernel.h (include Fltkernel.h) |