CcDeferWrite-Funktion (ntifs.h)
Die CcDeferWrite Routineverzögerung, die in eine zwischengespeicherte Datei geschrieben wird. Die bereitgestellte Postroutine wird vom Cache-Manager aufgerufen, wenn sie den Schreibvorgang aufnehmen kann.
Syntax
void CcDeferWrite(
[in] PFILE_OBJECT FileObject,
[in] PCC_POST_DEFERRED_WRITE PostRoutine,
[in] PVOID Context1,
[in] PVOID Context2,
[in] ULONG BytesToWrite,
[in] BOOLEAN Retrying
);
Parameter
[in] FileObject
Zeigen Sie auf ein Dateiobjekt für die zwischengespeicherte Datei, in die die Daten geschrieben werden sollen.
[in] PostRoutine
Adresse einer Routine für den Cache-Manager, die aufgerufen werden soll, um in die zwischengespeicherte Datei zu schreiben. Beachten Sie, dass diese Routine sofort aufgerufen wird, auch wenn CcCanIWrite gerade FALSE zurückgegeben hat.
Die Postroutine wird in ntifs.h definiert als:
typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
_In_ PVOID Context1,
_In_ PVOID Context2
);
Diese Funktion kann mit dem Feld "TopLevelIrp" im aktuellen IRP-Wert auf FSRTL_MOD_WRITE_TOP_LEVEL_IRP aufgerufen werden.
[in] Context1
First parameter for the post routine at PostRoutine.
[in] Context2
Zweiter Parameter für die Postroutine bei PostRoutine.
[in] BytesToWrite
Anzahl der zu schreibenden Daten.
[in] Retrying
Wird auf FALSE festgelegt, wenn die Anforderung zum ersten Mal veröffentlicht wird, TRUE andernfalls.
Rückgabewert
Nichts
Bemerkungen
Ein Dateisystem würde normalerweise CcDeferWrite aufrufen, nachdem ein Rückgabewert von FALSE von CcCanIWriteempfangen wurde.
Verwenden Sie CcInitializeCacheMap, um eine Datei zwischenzuspeichern.
Die an PostRoutine übergebenen Kontextparameter sind in der Regel die E/A-Anforderung und zugehörige Kontextdaten.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |