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 |