共用方式為


CcMdlWriteComplete 函式 (ntifs.h)

CcMdlWriteComplete 例程會釋放快取檔案 CcPrepareMdlW rite 所建立的記憶體描述項清單 (MDL)。

語法

void CcMdlWriteComplete(
  [in] PFILE_OBJECT   FileObject,
  [in] PLARGE_INTEGER FileOffset,
  [in] PMDL           MdlChain
);

參數

[in] FileObject

傳遞至 CcPrepareMdlWrite的檔案物件指標。

[in] FileOffset

傳遞至 CcPrepareMdlWriteFileOffset 的值。

[in] MdlChain

CcPrepareMdlWrite所傳回之 MDL 鏈結的位址。

傳回值

沒有

言論

文件系統會呼叫 CcMdlWriteComplete,以釋放 CcPrepareMdlWrite 所建立的記憶體描述項清單 (MDL),並針對快取的檔案 標記指定的位元組範圍。 鎖定的所有實體頁面都會解除鎖定。 任何對應的頁面皆未對應。

如果在 fileObject 參數指向的檔案對象上設定FO_WRITE_THROUGH旗標,檔案數據就會立即排清到磁碟。 此排清作業會重新進入文件系統,而且如果排清作業失敗,可能會導致 CcMdlWriteComplete 引發例外狀況。 在此情況下,MDL 尚未釋出,而且呼叫端可能會重新嘗試作業。

成功呼叫 CcMdlWriteComplete IRP_MN_COMPLETE 作業之後,呼叫端必須將 IRP 的 MdlAddress 字段設定為 NULL

在使用 CcMdlWriteComplete之前,強烈建議檔系統開發人員研究 FASTFAT 範例中使用此例程的方式。

CcPrepareMdlWrite 的每個呼叫都必須接著呼叫 CcMdlWriteCompleteCcMdlWriteAbort

要求

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

另請參閱

CcMdlWriteAbort

CcPrepareMdlWrite