CcDeferWrite-Funktion (ntifs.h)
Die CcDeferWrite-Routine verschiebt das Schreiben in eine zwischengespeicherte Datei. 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
Zeiger auf ein Dateiobjekt für die zwischengespeicherte Datei, in die die Daten geschrieben werden sollen.
[in] PostRoutine
Adresse einer Routine, die der Cache-Manager aufrufen soll, um in die zwischengespeicherte Datei zu schreiben. Beachten Sie, dass diese Routine möglicherweise sofort aufgerufen wird, auch wenn CcCanIWrite gerade FALSE zurückgegeben hat.
Die Postroutine ist in ntifs.h wie folgt definiert:
typedef
VOID (*PCC_POST_DEFERRED_WRITE) (
_In_ PVOID Context1,
_In_ PVOID Context2
);
[in] Context1
Erster Parameter für die Postroutine-Routine bei PostRoutine.
[in] Context2
Zweiter Parameter für die Postroutine-Routine bei PostRoutine.
[in] BytesToWrite
Anzahl der zu schreibenden Datenbytes.
[in] Retrying
Legen Sie auf FALSE fest, wenn die Anforderung zum ersten Mal gepostet wird, andernfalls TRUE .
Rückgabewert
Keine
Bemerkungen
Ein Dateisystem ruft normalerweise CcDeferWrite auf, nachdem der Rückgabewert FALSE von CcCanIWrite empfangen wurde.
Verwenden Sie CcInitializeCacheMap, um eine Datei zwischenzuspeichern.
Die an PostRoutine übergebenen Kontextparameter sind in der Regel die E/A-Anforderung und die zugehörigen Kontextdaten.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |