Freigeben über


CcCopyWriteEx-Funktion (ntifs.h)

Die CcCopyWriteEx Routine kopiert Daten aus einem Benutzerpuffer in eine zwischengespeicherte Datei. Die Anzahl der E/A-Byte für den Vorgang wird dem ausstellenden Thread in Rechnung gestellt.

Syntax

BOOLEAN CcCopyWriteEx(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] ULONG          Length,
  [in] BOOLEAN        Wait,
  [in] PVOID          Buffer,
  [in] PETHREAD       IoIssuerThread
);

Parameter

[in] FileObject

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

[in] FileOffset

Ein Zeiger auf eine Variable, die den Anfangsbyte-Offset innerhalb der zwischengespeicherten Datei angibt.

[in] Length

Die Länge in Byte der zu schreibenden Daten.

[in] Wait

Auf TRUE festgelegt, wenn der Aufrufer in einen Wartezustand versetzt werden kann, bis alle Daten kopiert wurden, andernfalls FALSE.

[in] Buffer

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

[in] IoIssuerThread

Der Thread, der die Schreibanforderung ausgibt. Für ein Dateisystem mit aktivierter Datenträger-E/A-Buchhaltung ist dies der Thread, für den die E/A-Funktion in Rechnung gestellt wird. Wenn IoIssuerThread- NULL ist, wird die E/A dem aktuellen Thread in Rechnung gestellt.

Rückgabewert

Die CcCopyWriteEx- Routine gibt TRUE zurück, wenn die Daten erfolgreich kopiert wurden, andernfalls FALSE.

Bemerkungen

Wenn Wait WAHR ist, wird CcCopyWriteEx- garantiert, dass die Kopieranforderung abgeschlossen und TRUE zurückgegeben wird. Wenn die erforderlichen Seiten der zwischengespeicherten Datei bereits im Arbeitsspeicher vorhanden sind, werden die Daten sofort kopiert, und es tritt keine Blockierung auf. Wenn erforderliche Seiten nicht vorhanden sind, wird der Aufrufer in einen Wartezustand versetzt, bis alle erforderlichen Seiten resident wurden und die Daten kopiert werden können.

Wenn Wait FALSE ist, wird CcCopyWriteEx die Blockierung verweigern und FALSE zurückgeben, wenn die erforderlichen Seiten der zwischengespeicherten Datei nicht bereits im Arbeitsspeicher vorhanden sind oder wenn das FO_WRITE_THROUGH Flag für das Dateiobjekt festgelegt ist.

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

Verwenden Sie zum Zwischenspeichern einer Datei "CcInitializeCacheMap".

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
Zielplattform- Universal
Header- ntifs.h (einschließlich Ntifs.h, FltKernel.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- <= APC_LEVEL

Siehe auch

CcInitializeCacheMap-