IVssProviderCreateSnapshotSet::CommitSnapshots 方法 (vsprov.h)
CommitSnapshots 方法會快速認可此提供者中的所有 LUN。
語法
HRESULT CommitSnapshots(
[in] VSS_ID SnapshotSetId
);
參數
[in] SnapshotSetId
識別陰影複製集 的VSS_ID 。
傳回值
傳回碼/值 | Description |
---|---|
|
作業已順利完成。 |
|
記憶體不足或其他系統資源。 |
|
其中一個參數值無效。 |
|
SnapshotSetId 參數是指找不到的物件。 |
|
發生非預期的提供者錯誤。 提供者必須在應用程式事件記錄檔中記錄此錯誤的詳細數據。 |
如果傳回任何其他值,VSS 會將事件寫入事件記錄檔,並將錯誤轉換成 VSS_E_UNEXPECTED_PROVIDER_ERROR。
備註
這個方法會在定義的時間呼叫,此時應該建立陰影複製。 針對此陰影複製集中的每個備妥 LUN,提供者會執行保存時間點 LUN 內容所需的工作。 雖然這個方法正在執行,但應用程式和 I/O 子系統基本上都是靜止的。 提供者必須儘可能減少此方法所花費的時間量。 根據一般規則,此方法應該需要少於一秒才能完成。 這個方法會在 Flush and Hold 視窗期間呼叫,而 VSS 核心支援會在 10 秒內未收到發行時取消 Flush and Hold,這會導致 VSS 失敗陰影複製建立程式。 如果每個提供者需要超過一秒或兩次才能完成此呼叫,則整個陰影複製建立將會失敗的高機率。
因為 I/O 系統是靜止的,所以提供者必須小心不要起始任何 I/O,因為它可能會死結系統,例如,此方法的偵錯或追蹤 I/O 或任何從此方法進行的呼叫。 記憶體對應檔案和分頁 I/O 目前不會凍結。
請注意,只有在這個方法正在執行時,I/O 系統才會靜止。 在最後一個提供者的 CommitSnapshots 方法傳回之後,VSS 服務會釋放來源 LUN 上所有擱置的寫入。 如果提供者執行來源和陰影複製 LUN 的任何同步處理,則必須在提供者的 CommitSnapshots 方法傳回之前完成此同步處理;無法以異步方式執行。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | vsprov.h |