CcFastCopyWrite-Funktion (ntifs.h)

Die CcFastCopyWrite-Routine führt einen schnellen Kopierschreibvorgang aus einem Puffer im Arbeitsspeicher in eine zwischengespeicherte Datei durch.

Syntax

void CcFastCopyWrite(
  [in] PFILE_OBJECT FileObject,
  [in] ULONG        FileOffset,
  [in] ULONG        Length,
  [in] PVOID        Buffer
);

Parameter

[in] FileObject

Zeiger auf ein Dateiobjekt für die zwischengespeicherte Datei, in die die Daten geschrieben werden sollen.

[in] FileOffset

Zeiger auf eine Variable, die den Anfangsbyteoffset in der zwischengespeicherten Datei angibt.

[in] Length

Länge der zu schreibenden Daten in Bytes.

[in] Buffer

Zeiger auf den Puffer, aus dem die Daten kopiert werden sollen.

Rückgabewert

Keine

Bemerkungen

CcFastCopyWrite ist eine schnellere Version von CcCopyWrite. Es unterscheidet sich von CcCopyWrite in den folgenden Punkten:

  • FileOffset ist ein ULONG, kein PLARGE_INTEGER.

  • Es gibt keinen Wait-Parameter . Der Aufrufer muss in der Lage sein, einen Wartezustand zu wechseln, bis alle Daten kopiert wurden.

  • CcFastCopyWrite gibt keinen BOOLEAN zurück, um anzugeben, ob der Schreibvorgang erfolgreich war.

Wenn sich die erforderlichen Seiten der zwischengespeicherten Datei bereits im Arbeitsspeicher befinden, werden die Daten sofort kopiert, und es erfolgt keine Blockierung. Wenn keine benötigten Seiten vorhanden sind, wird der Aufrufer in einen Wartezustand versetzt, bis alle erforderlichen Seiten als resident festgelegt wurden und die Daten kopiert werden können.

Wenn ein Fehler auftritt, löst CcFastCopyWrite eine status Ausnahme für diesen bestimmten Fehler aus. Wenn beispielsweise ein Poolzuordnungsfehler auftritt, löst CcFastCopyWrite eine STATUS_INSUFFICIENT_RESOURCES Ausnahme aus. Wenn ein E/A-Fehler auftritt, löst CcFastCopyWrite die status Ausnahme des E/A-Fehlers aus. Daher sollte der Treiber den Aufruf von CcFastCopyWrite in einer try-except- oder try-finally-Anweisung umschließen, um die Kontrolle zu erlangen, wenn ein Fehler auftritt.

Um eine Datei zwischenzuspeichern, verwenden Sie CcInitializeCacheMap.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header ntifs.h (include Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe

Weitere Informationen

CcCopyWrite

CcInitializeCacheMap