CcMdlWriteComplete 函式 (ntifs.h)

CcMdlWriteComplete 例程會釋出記憶體描述元清單, (由 CcPrepareMdlWrite 針對快取的檔案所建立的 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 尚未釋出,而且呼叫端可能會重新嘗試作業。

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

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

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

規格需求

需求
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL

另請參閱

CcMdlWriteAbort

CcPrepareMdlWrite