共用方式為


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-finally 語句的 try-except try-finally 語句中包裝對 ccCopyWriteEx 的呼叫。

若要快取檔案,請使用 CcInitializeCacheMap

要求

要求 價值
最低支援的用戶端 Windows 8
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h, FltKernel.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

CcInitializeCacheMap