CcMdlWriteComplete 函式 (ntifs.h)
CcMdlWriteComplete 例程會釋出記憶體描述元清單, (由 CcPrepareMdlWrite 針對快取的檔案所建立的 MDL) 。
語法
void CcMdlWriteComplete(
[in] PFILE_OBJECT FileObject,
[in] PLARGE_INTEGER FileOffset,
[in] PMDL MdlChain
);
參數
[in] FileObject
傳遞至 CcPrepareMdlWrite 的檔案物件指標。
[in] FileOffset
傳遞至 CcPrepareMdlWrite 的 FileOffset 值。
[in] MdlChain
CcPrepareMdlWrite 所傳回之 MDL 鏈結的位址。
傳回值
無
備註
文件系統會呼叫 CcMdlWriteComplete 以釋出記憶體描述元清單 (,列出由 CcPrepareMdlWrite 為快取檔案建立的 MDL) ,以及標示寫入的指定位元組範圍。 鎖定的所有實體頁面都會解除鎖定。 任何對應的頁面都未對應。
如果在 FileObject 參數指向的檔案對象上設定FO_WRITE_THROUGH旗標,檔案數據就會立即排清到磁碟。 此排清作業會重新輸入文件系統,而且如果排清作業失敗,可能會造成 CcMdlWriteComplete 引發例外狀況。 在此情況下,MDL 尚未釋出,而且呼叫端可能會重新嘗試作業。
成功針對IRP_MN_COMPLETE作業呼叫 CcMdlWriteComplete 之後,呼叫端必須將 IRP 的 MdlAddress 字段設定為 NULL。
使用 CcMdlWriteComplete 之前,強烈建議文件系統開發人員研究 FASTFAT 範例中使用此例程的方式。
對 CcPrepareMdlWrite 的每個呼叫都必須接著對 CcMdlWriteComplete 或 CcMdlWriteAbort 的呼叫。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |