Freigeben über


CcFastCopyRead-Funktion (ntifs.h)

Die CcFastCopyRead Routine führt eine schnelle Kopie aus einer zwischengespeicherten Datei in einen Puffer im Arbeitsspeicher aus.

Syntax

void CcFastCopyRead(
  [in]  PFILE_OBJECT     FileObject,
  [in]  ULONG            FileOffset,
  [in]  ULONG            Length,
  [in]  ULONG            PageCount,
  [out] PVOID            Buffer,
  [out] PIO_STATUS_BLOCK IoStatus
);

Parameter

[in] FileObject

Zeigen Sie auf ein Dateiobjekt für die zwischengespeicherte Datei, aus der die Daten gelesen werden sollen.

[in] FileOffset

Byteoffset innerhalb der zwischengespeicherten Datei wird gestartet.

[in] Length

Länge in Byte der zu lesenden Daten.

[in] PageCount

Die Anzahl der Seiten, die durch den Lesevorgang gespannt sind.

[out] Buffer

Zeigen Sie auf einen Puffer, in den die Daten kopiert werden sollen.

[out] IoStatus

Zeigen Sie auf eine Struktur, die den endgültigen Abschlussstatus und Informationen zum Vorgang empfängt. Wenn nicht alle Daten erfolgreich kopiert werden, enthält IoStatus.Information die tatsächliche Anzahl von Bytes, die kopiert wurden.

Rückgabewert

Nichts

Bemerkungen

CcFastCopyRead ist eine schnellere Version von CcCopyRead. Es unterscheidet sich von CcCopyRead 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 einzugeben, bis alle Daten kopiert wurden.

  • CcFastCopyRead- gibt keinen BOOLEAN zurück, um anzugeben, ob der Lesevorgang erfolgreich war.

FileOffset plus Length muss kleiner oder gleich der Größe der zwischengespeicherten Datei sein, oder ein Assertionsfehler tritt auf.

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

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
IRQL- < DISPATCH_LEVEL

Siehe auch

CcCopyRead-

CcInitializeCacheMap-

CcReadAhead-

CcScheduleReadAhead

CcSetAdditionalCacheAttributes

CcSetReadAheadGranularity