Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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;
Elemente
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 Anmerkungen.
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 Anmerkungen.
Bemerkungen
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 |
|---|---|
| Kopfzeile | Fltkernel.h (include Fltkernel.h) |