DUMP_WRITE Rückruffunktion (ntdddump.h)
Die Dump_Write Rückrufroutine wird vor dem Schreiben in den Dumpporttreiber aufgerufen. Der Filtertreiber kann zu diesem Zeitpunkt auf die Abbilddaten zugreifen.
Syntax
DUMP_WRITE DumpWrite;
NTSTATUS DumpWrite(
[in] PFILTER_EXTENSION FilterExtension,
[in, out] PLARGE_INTEGER DiskByteOffset,
[in, out] PMDL Mdl
)
{...}
Parameter
[in] FilterExtension
Ein Zeiger auf eine FILTER_EXTENSION Struktur.
[in, out] DiskByteOffset
Der Wert in Bytes relativ zur Zielpartition für das Absturzabbild oder den Ruhezustand. Filtertreiber sollten dieses Feld nicht ändern.
[in, out] Mdl
Ein Zeiger auf eine MDL-Struktur , die den Datenpuffer beschreibt. Wenn die MDL geändert wird, kann sich die Größe des Schreibvorgangs nicht ändern.
Rückgabewert
Wenn die Routine erfolgreich ist, muss sie STATUS_SUCCESS zurückgeben. Andernfalls muss einer der in Ntstatus.h definierten Fehlerwerte status zurückgegeben werden.
Hinweise
Filtertreiber können die daten lesen, die geschrieben werden müssen. Filtertreiber können jedoch nicht in den Puffer schreiben, da dies den Inhalt des Codes oder der Daten ändern kann, die vom Absturzabbildprozess verwendet werden. Außerdem dürfen Filtertreiber die Größe der Daten nicht ändern.
Um die Daten für den Dumpschreibvorgang sicher zu ändern, sollte ein Filtertreiber einen sekundären Puffer zuordnen. Die Größe des Puffers ist der Wert des MaxPagesPerWrite-Members von FILTER_INITIALIZATION_DATA multipliziert mit PAGE_SIZE. Die von Mdl beschriebenen Daten für den aktuellen Puffer werden in den sekundären Puffer kopiert und verarbeitet. Nachdem der Filter die Verarbeitung der Dumpdaten im sekundären Puffer abgeschlossen hat, wird die MDL , auf die von Mdl verwiesen wird, mit der Adresse des sekundären Puffers aktualisiert. Die Startadresse des sekundären Puffers, der in der MDL festgelegt ist, muss seitenbündig sein.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar ab Windows Vista und Windows Server 2008. |
Zielplattform | Desktop |
Kopfzeile | ntdddump.h (include Ntdddump.h) |