共用方式為


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

另請參閱

CLFS_LSN

ClfsAdvanceLogBase

ClfsCreateMarshallingArea

ClfsReadPreviousRestartArea

ClfsReadRestartArea