CcFastCopyWrite 函式 (ntifs.h)
CcFastCopyWrite 例程會執行從記憶體中的緩衝區到快取檔案的快速複製寫入。
語法
void CcFastCopyWrite(
[in] PFILE_OBJECT FileObject,
[in] ULONG FileOffset,
[in] ULONG Length,
[in] PVOID Buffer
);
參數
[in] FileObject
要寫入數據之快取檔案之檔案物件的指標。
[in] FileOffset
指定快取檔案內起始位元組位移之變數的指標。
[in] Length
要寫入之數據的位元組長度。
[in] Buffer
要從中複製數據之緩衝區的指標。
傳回值
無
備註
CcFastCopyWrite 是較快速版本的 CcCopyWrite。 在下列方面與 CcCopyWrite 不同:
FileOffset 是 ULONG,而不是PLARGE_INTEGER。
沒有 Wait 參數。 呼叫端必須能夠進入等候狀態,直到複製所有數據為止。
CcFastCopyWrite 不會傳回 BOOLEAN,指出寫入作業是否成功。
如果快取檔案的必要頁面已經存在於記憶體中,則會立即複製數據,而且不會發生封鎖。 如果有任何需要的頁面未存在,則呼叫端會處於等候狀態,直到所有必要頁面都已存在且可複製數據為止。
如果發生任何失敗, CcFastCopyWrite 會針對該特定失敗引發狀態例外狀況。 例如,如果發生集區配置失敗, CcFastCopyWrite 會引發STATUS_INSUFFICIENT_RESOURCES例外狀況;如果發生 I/O 錯誤, CcFastCopyWrite 會引發 I/O 錯誤的狀態例外狀況。 因此,若要控制是否發生失敗,驅動程式應該在 try-except 或 try-finally 語句中包裝對 CcFastCopyWrite 的呼叫。
若要快取檔案,請使用 CcInitializeCacheMap。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |