Share via


FLT_PARAMETERS per l'unione IRP_MJ_WRITE

Il componente di unione seguente viene utilizzato quando il campo MajorFunction della struttura FLT_IO_PARAMETER_BLOCK per l'operazione viene IRP_MJ_WRITE.

Sintassi

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    ULONG         Length;
    ULONG         Key;
    LARGE_INTEGER ByteOffset;
    PVOID         WriteBuffer;
    PMDL          MdlAddress;
  } Write;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

Members

  • Scrittura: struttura contenente i membri seguenti.

  • Lunghezza: lunghezza, in byte, dei dati da scrivere.

  • Chiave: valore della chiave associato a un blocco di intervallo di byte nel file di destinazione.

  • ByteOffset: offset di byte iniziale all'interno del file dei dati da scrivere.

  • WriteBuffer: puntatore a un buffer contenente i dati da scrivere nel file. Questo membro è facoltativo e può essere NULL se viene fornito un MDL in MdlAddress. Vedere la sezione Osservazioni.

  • MdlAddress: indirizzo di un elenco di descrittori di memoria (MDL) che descrive il buffer a cui punta il membro WriteBuffer . Questo membro è facoltativo e può essere NULL se viene fornito un buffer in WriteBuffer. Vedere la sezione Osservazioni.

Commenti

La struttura FLT_PARAMETERS per IRP_MJ_WRITE operazioni contiene i parametri per un'operazione di scrittura rappresentata da una struttura di dati di callback (FLT_CALLBACK_DATA). È contenuto in una struttura FLT_IO_PARAMETER_BLOCK.

Se vengono forniti sia un buffer WriteBuffer che MdlAddress , è consigliabile che i minifiltri usino MDL. La memoria a cui WriteBuffer punta è valida quando si tratta di un indirizzo in modalità utente a cui si accede nel contesto del processo chiamante o se si tratta di un indirizzo in modalità kernel.

Se un minifiltro modifica il valore di MdlAddress, dopo il callback dell'operazione successiva, Gestione filtri libera il file MDL attualmente archiviato in MdlAddress e ripristina il valore precedente di MdlAddress.

IRP_MJ_WRITE può essere un'operazione basata su IRP o un'operazione di I/O veloce.

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

FltWriteFile

IRP_MJ_WRITE

ZwWriteFile