共用方式為


IVssProviderCreateSnapshotSet::CommitSnapshots 方法 (vsprov.h)

CommitSnapshots 方法會快速認可此提供者中的所有 LUN。

語法

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

參數

[in] SnapshotSetId

識別陰影複製集 的VSS_ID

傳回值

傳回碼/值 Description
S_OK
0x00000000L
作業已順利完成。
E_OUTOFMEMORY
0x8007000EL
記憶體不足或其他系統資源。
E_INVALIDARG
0x80070057L
其中一個參數值無效。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
SnapshotSetId 參數是指找不到的物件。
VSS_E_PROVIDER_VETO
0x80042306L
發生非預期的提供者錯誤。 提供者必須在應用程式事件記錄檔中記錄此錯誤的詳細數據。
 

如果傳回任何其他值,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

另請參閱

IVssProviderCreateSnapshotSet