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

Weitere Informationen

CcCanIWrite

CcInitializeCacheMap

CcSetDirtyPageThreshold