共用方式為


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

要從中複製數據的緩衝區指標。

傳回值

沒有

言論

CcFastCopyWriteCcCopyWrite的較快版本。 其與 CcCopyWrite 在下列方面不同:

  • FileOffset 是 ULONG,而不是PLARGE_INTEGER。

  • 沒有 Wait 參數。 呼叫端必須能夠進入等候狀態,直到複製所有數據為止。

  • CcFastCopyWrite 不會傳回 BOOLEAN 來指出寫入作業是否成功。

如果快取檔案的必要頁面已存在於記憶體中,則會立即複製數據,而且不會發生任何封鎖。 如果任何必要的頁面都不是常駐頁面,則呼叫端會進入等候狀態,直到所有必要頁面都已進入常駐狀態,而且可以複製數據。

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

若要快取檔案,請使用 CcInitializeCacheMap

要求

要求 價值
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe

另請參閱

CcCopyWrite

CcInitializeCacheMap