ClfsWriteRestartArea 函式 (wdm.h)
ClfsWriteRestartArea 例程會以不可部分完成的方式將新的重新啟動記錄附加至 CLFS 數據流、將重新啟動記錄排清到穩定記憶體,並選擇性地更新數據流的基底 LSN。
語法
CLFSUSER_API NTSTATUS ClfsWriteRestartArea(
[in, out] PVOID pvMarshalContext,
[in] PVOID pvRestartBuffer,
[in] ULONG cbRestartBuffer,
[in, optional] PCLFS_LSN plsnBase,
[in] ULONG fFlags,
[out, optional] PULONG pcbWritten,
[out, optional] PCLFS_LSN plsnNext
);
參數
[in, out] pvMarshalContext
不透明內容的指標,表示與CLFS數據流相關聯的封送處理區域。 呼叫端先前藉由呼叫 ClfsCreateMarshallingArea 來取得此指標。
[in] pvRestartBuffer
緩衝區的指標,其中包含重新啟動記錄的數據。
[in] cbRestartBuffer
pvRestartBuffer 所指向緩衝區的大小,以位元組為單位。 這是重新啟動數據的大小。
[in, optional] plsnBase
指定數據流之新基底 LSN 之CLFS_LSN 結構的指標。 如果此參數為 NULL,則基底 LSN 不會變更。
[in] fFlags
此參數必須是下列其中一個值。
值 | 意義 |
---|---|
0 | 重新啟動記錄會放在I/O區塊中新配置的空間中。 封送處理區域中的保留記錄數目不會變更。 |
CLFS_FLAG_USE_RESERVATION | 重新啟動記錄會放在先前保留的 I/O 區塊空間中。 封送處理區域中的保留記錄數目會減少一。 |
[out, optional] pcbWritten
ULONG 型別變數的指標,可接收實際強制為穩定記憶體的位元元組數目。 此參數可以是 Null。
[out, optional] plsnNext
接收新寫入重新啟動記錄之 LSN 之CLFS_LSN 結構的指標。
傳回值
ClfsWriteRestartArea 會在成功時傳回STATUS_SUCCESS;否則,它會傳回 Ntstatus.h 中定義的其中一個錯誤碼。
備註
一般而言,ClfsWriteRestartArea 稱為客戶端檢查點的最後一個動作。
ClfsWriteRestartArea 是相當耗費資源的作業,因為它會排清目前封送處理區域中的所有記錄,以及數據流和記錄元數據的排清。
一次只能使用一個封送處理區域將數據寫入數據流。 將兩個封送處理區域寫入數據流可能會導致數據流損毀。
如果您只想設定數據流的基底 LSN,請使用 ClfsAdvanceLogBase,這不一定會將任何數據排清到穩定記憶體。
如需CLFS概念和術語的說明,請參閱 一般記錄檔系統。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Server 2003 R2、Windows Vista 和更新版本的 Windows。 |
目標平台 | 桌面 |
標頭 | wdm.h (包含 Wdm.h) |
程式庫 | Clfs.lib |
Dll | Clfs.sys |
IRQL | <= APC_LEVEL |