CcCopyWrite 函式 (ntifs.h)

CcCopyWrite常式會將資料從使用者緩衝區複製到快取的檔案。

語法

BOOLEAN CcCopyWrite(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] ULONG          Length,
  [in] BOOLEAN        Wait,
  [in] PVOID          Buffer
);

參數

[in] FileObject

要寫入資料的快取檔案物件之檔案物件的指標。

[in] FileOffset

變數的指標,指定快取檔案內的起始位元組位移。

[in] Length

要寫入之資料的位元組長度。

[in] Wait

如果呼叫端可以進入等候狀態,直到複製所有資料,則設定為 TRUE ,否則為 FALSE

[in] Buffer

要從中複製資料的緩衝區指標。

傳回值

如果成功複製資料, CcCopyWrite 常式會傳回 TRUE ,否則為 FALSE

備註

如果 WaitTRUE則 CcCopyWrite 保證可以完成複製要求並傳回 TRUE。 如果快取檔案的必要頁面已經存在於記憶體中,則會立即複製資料,而且不會發生封鎖。 如果有任何必要的頁面未存在,則呼叫端將會處於等候狀態,直到所有必要頁面都已存在,而且可以複製資料。

如果 WaitFALSE則 CcCopyWrite 會拒絕封鎖,如果快取檔案的必要頁面尚未存留于記憶體中,或檔案物件上已設定FO_WRITE_THROUGH旗標,則會傳回 FALSE

如果發生任何失敗, CcCopyWrite 會針對該特定失敗引發狀態例外狀況。 例如,如果集區配置失敗, CcCopyWrite 會引發STATUS_INSUFFICIENT_RESOURCES例外狀況;如果發生 I/O 錯誤, CcCopyWrite 會引發 I/O 錯誤的狀態例外狀況。 因此,若要控制是否發生失敗,驅動程式應該在try-excepttry-finally語句中包裝對 CcCopyWrite的呼叫。

若要快取檔案,請使用 CcInitializeCacheMap

需求

   
最低支援的用戶端 可在 Microsoft Windows 2000 和更新版本的 Windows 作業系統上使用。
目標平臺 環球
標頭 ntifs.h (包括 Ntifs.h、FltKernel.h)
程式庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

CcInitializeCacheMap