FLT_PARAMETERS für IRP_MJ_WRITE Union

Die folgende Union-Komponente wird verwendet, wenn das Feld "MajorFunction" der FLT_IO_PARAMETER_BLOCK Struktur für den Vorgang IRP_MJ_WRITE ist.

Syntax

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

Member

  • Write: Structure containing the following members.

  • Länge: Länge der zu schreibenden Daten in Bytes.

  • Schlüssel: Schlüsselwert, der einer Bytebereichssperre in der Zieldatei zugeordnet ist.

  • ByteOffset: Byteoffset beginnt innerhalb der Datei der zu schreibenden Daten.

  • WriteBuffer: Zeiger auf einen Puffer, der die daten enthält, die in die Datei geschrieben werden sollen. Dieses Element ist optional und kann NULL sein, wenn eine MDL in MdlAddress bereitgestellt wird. Siehe Hinweise.

  • MdlAddress: Adresse einer Speicherdeskriptorliste (MDL), die den Puffer beschreibt, auf den das WriteBuffer-Element verweist. Dieses Element ist optional und kann NULL sein, wenn in WriteBuffer ein Puffer bereitgestellt wird. Siehe Hinweise.

Hinweise

Die FLT_PARAMETERS Struktur für IRP_MJ_WRITE-Vorgänge enthält die Parameter für einen Schreibvorgang, der durch eine Rückrufdatenstruktur (FLT_CALLBACK_DATA) dargestellt wird. Sie ist in einer FLT_IO_PARAMETER_BLOCK-Struktur enthalten.

Wenn sowohl ein WriteBuffer- als auch ein MdlAddress-Puffer bereitgestellt werden, wird empfohlen, dass Minifilter die MDL verwenden. Der Speicher, auf den WriteBuffer verweist, ist gültig, wenn es sich um eine Benutzermodusadresse handelt, auf die im Kontext des Aufrufvorgangs zugegriffen wird, oder wenn es sich um eine Kernelmodusadresse handelt.

Wenn ein Minifilter den Wert von MdlAddress ändert, gibt der Filter-Manager nach dem Rückruf nach dem Vorgang die MDL frei, die derzeit in MdlAddress gespeichert ist, und stellt den vorherigen Wert von MdlAddress wieder her.

Wenn das IRP_MN_COMPLETE Bit in Iopb-MinorFunction> festgelegt ist, ist MdlAddress die Adresse, die an CcMdlReadComplete gesendet werden soll.

Wenn das IRP_MN_MDL Bit (und nicht das IRP_MN_COMPLETE Bit) in Iopb-MinorFunction> festgelegt ist, ist MdlAddress die Adresse, die an CcPrepareMdlWrite gesendet werden soll.

IRP_MJ_WRITE kann ein IRP-basierter Vorgang oder ein schneller E/A-Vorgang sein.

Anforderungen

Anforderungstyp Anforderung
Header Fltkernel.h (einschließlich Fltkernel.h)

Weitere Informationen

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