Freigeben über


CcCanIWrite-Funktion (ntifs.h)

Die CcCanIWrite Routine bestimmt, ob der Aufrufer in eine zwischengespeicherte Datei schreiben kann.

Syntax

BOOLEAN CcCanIWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        BytesToWrite,
  [in] BOOLEAN      Wait,
  [in] UCHAR        Retrying
);

Parameter

[in] FileObject

Zeigen Sie auf ein Dateiobjekt für die zwischengespeicherte Datei.

[in] BytesToWrite

Anzahl der zu schreibenden Bytes.

[in] Wait

Wird auf TRUE festgelegt, wenn der Aufrufer in einen Wartezustand versetzt werden kann, bis er in die zwischengespeicherte Datei schreiben kann, andernfalls FALSE.

[in] Retrying

Wird auf FALSE festgelegt, wenn dies das erste Mal ist, CcCanIWrite für diese Schreibanforderung aufgerufen wird, andernfalls TRUE.

Rückgabewert

"CcCanIWrite" "TRUE" zurück, wenn der Cache-Manager die Schreibanforderung akzeptieren kann, andernfalls FALSE.

Bemerkungen

CcCanIWrite- sollte aufgerufen werden, bevor CcCopyWrite oder CcFastCopyWriteaufgerufen werden.

Wenn CcCanIWrite TRUE zurückgibt, kann der Aufrufer sofort CcCopyWrite oder CcFastCopyWriteaufrufen.

Wenn CcCanIWrite FALSE zurückgibt, muss der Aufrufer stattdessen CcDeferWrite- aufrufen, um die Schreibanforderung zurückzuweisen.

Im Allgemeinen kann der Cache-Manager eine Schreibanforderung annehmen, wenn die folgenden Bedingungen erfüllt sind:

  • Die zu schreibende Datenmenge ist nicht zu groß.

  • Es ist genügend Arbeitsspeicher vorhanden, um den Schreibvorgang auszuführen.

  • Die Anzahl der geänderten Seiten im Systemcache überschreitet nicht den Schwellenwert für schmutzige Seiten (CcDirtyPageThreshold).

  • Wenn für diese Datei ein Schwellenwert für schmutzige Seiten pro Datei vorhanden ist, wird er nicht von der Anzahl der geänderten Seiten für diese Datei im Systemcache überschritten.

Verwenden Sie zum Zwischenspeichern einer Datei "CcInitializeCacheMap".

Anforderungen

Anforderung Wert
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe

Siehe auch

CcCopyWrite-

CcDeferWrite-

CcFastCopyWrite-

CcInitializeCacheMap-

CcSetDirtyPageThreshold