Freigeben über


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

Siehe auch

CcCanIWrite-

CcInitializeCacheMap-

CcSetDirtyPageThreshold