ccFastCopyRead 函式 (ntifs.h)
CcFastCopyRead 例程會執行從快取檔案到記憶體中緩衝區的快速複製。
語法
void CcFastCopyRead(
[in] PFILE_OBJECT FileObject,
[in] ULONG FileOffset,
[in] ULONG Length,
[in] ULONG PageCount,
[out] PVOID Buffer,
[out] PIO_STATUS_BLOCK IoStatus
);
參數
[in] FileObject
要從中讀取數據的快取檔案之檔案物件的指標。
[in] FileOffset
在快取的檔案中啟動位元組位移。
[in] Length
要讀取之數據的位元組長度。
[in] PageCount
讀取跨越的頁數。
[out] Buffer
要複製數據的緩衝區指標。
[out] IoStatus
接收最終完成狀態和作業相關信息之結構的指標。 如果並非所有數據都成功複製, IoStatus.Information 會包含複製的實際位元元組數目。
傳回值
無
備註
CcFastCopyRead 是較快速版本的 CcCopyRead。 在下列方面,其與 CcCopyRead 不同:
FileOffset 是 ULONG,而不是PLARGE_INTEGER。
沒有 Wait 參數。 呼叫端必須能夠進入等候狀態,直到複製所有數據為止。
CcFastCopyRead 不會傳回 BOOLEAN,以指出讀取作業是否成功。
FileOffset 加上 Length 必須小於或等於快取檔案的大小,否則會發生判斷提示失敗。
如果發生任何失敗, CcFastCopyRead 會針對該特定失敗引發狀態例外狀況。 例如,如果發生集區配置失敗, CcFastCopyRead 會引發STATUS_INSUFFICIENT_RESOURCES例外狀況;如果發生 I/O 錯誤, CcFastCopyRead 會引發 I/O 錯誤的狀態例外狀況。 因此,若要控制是否發生失敗,驅動程式應該在 try-except 或 try-finally 語句中包裝對 CcFastCopyRead 的呼叫。
若要快取檔案,請使用 CcInitializeCacheMap。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |