CcCopyWriteEx 函式 (ntifs.h)
CcCopyWriteEx 例程會將數據從用戶緩衝區複製到快取的檔案。 作業的 I/O 位元組計數會向發出線程收費。
語法
BOOLEAN CcCopyWriteEx(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] ULONG Length,
[in] BOOLEAN Wait,
[in] PVOID Buffer,
[in] PETHREAD IoIssuerThread
);
參數
[in] FileObject
要寫入數據的快取檔案物件之檔案物件的指標。
[in] FileOffset
變數的指標,指定快取檔案內的起始位元組位移。
[in] Length
要寫入之數據的位元組長度。
[in] Wait
如果呼叫端可以進入等候狀態,直到複製所有數據,則設定為TRUE,否則為 FALSE。
[in] Buffer
要從中複製數據的緩衝區指標。
[in] IoIssuerThread
發出寫入要求的線程。 針對已啟用磁碟 I/O 會計的文件系統,這是 I/O 收費的線程。 如果 IoIssuerThread 為 NULL,則 I/O 會向目前的線程收費。
傳回值
如果成功複製數據, 則 CcCopyWriteEx 例程會傳回 TRUE,否則傳回 FALSE。
備註
如果 Wait 為 TRUE, 則 CcCopyWriteEx 保證可以完成複製要求並傳回 TRUE。 如果快取檔案的必要頁面已經存在於記憶體中,則會立即複製數據,而且不會發生封鎖。 如果有任何必要的頁面未存在,則呼叫端將會處於等候狀態,直到所有必要頁面都已存在,而且可以複製數據。
如果 Wait 為 FALSE, 則 CcCopyWriteEx 會拒絕封鎖,如果快取檔案的必要頁面尚未存在於記憶體中,或檔案物件上已設定FO_WRITE_THROUGH旗標,則會傳回 FALSE。
如果發生任何失敗, CcCopyWriteEx 會針對該特定失敗引發狀態例外狀況。 例如,如果集區配置失敗, CcCopyWriteEx 會引發具有 STATUS_INSUFFICIENT_RESOURCES 狀態的例外狀況;如果發生 I/O 錯誤, CcCopyWriteEx 會引發 I/O 錯誤的狀態例外狀況。 因此,若要控制是否發生失敗,驅動程式應該在 try-except 或 try-finally 語句中包裝對 CcCopyWriteEx 的呼叫。
若要快取檔案,請使用 CcInitializeCacheMap。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 |
目標平台 | Universal |
標頭 | ntifs.h (包括 Ntifs.h、FltKernel.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應