共用方式為


IVssBackupComponents::AddToSnapshotSet 方法 (vsbackup.h)

AddToSnapshotSet 方法會將原始磁碟區或原始遠端檔案共用新增至陰影複製集。

語法

HRESULT AddToSnapshotSet(
  [in]  VSS_PWSZ pwszVolumeName,
  [in]  VSS_ID   ProviderId,
  [out] VSS_ID   *pidSnapshot
);

參數

[in] pwszVolumeName

以 Null 結束的寬字元字串,其中包含要陰影複製之遠端檔案共用的磁碟區名稱或 UNC 路徑。 名稱或 UNC 路徑必須是下列其中一種格式,且必須包含尾端反斜杠 (\) :

  • 掛接資料夾的路徑,例如 Y:\MountX\
  • 驅動器號,例如 D:\
  • 格式為 \\?\Volume{GUID}\ 的磁碟區 GUID 路徑 (,其中 GUID 會識別磁碟區)
  • 指定遠端檔案共用的 UNC 路徑,例如 \\Clusterx\Share1\

[in] ProviderId

要使用的提供者。 您可以使用GUID_NULL,在此情況下會使用預設提供者。

[out] pidSnapshot

傳回已新增陰影複製的標識碼。

傳回值

以下是這個方法的有效傳回碼。

意義
S_OK
0x00000000L
已成功將磁碟區或遠端檔案共用新增至陰影複製集。
E_ACCESSDENIED
0x80070005L
呼叫端沒有足夠的備份許可權,或不是系統管理員。
E_INVALIDARG
0x80070057L
其中一個參數值無效。
E_OUTOFMEMORY
0x8007000EL
呼叫端記憶體不足或其他系統資源。
VSS_E_BAD_STATE
0x80042301L
備份元件物件未初始化、在還原作業期間呼叫此方法,或未在正確的順序內呼叫此方法。
VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED
0x80042312L
陰影複製集已新增磁碟區或遠端檔案共享的數目上限。 指定的磁碟區或遠端檔案共用未新增至陰影複製集。
VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED
0x80042317L
磁碟區或遠端檔案共用已新增至陰影複製集的最大數目。 指定的磁碟區或遠端檔案共用未新增至陰影複製集。
VSS_E_NESTED_VOLUME_LIMIT
0x8004232CL
指定的磁碟區巢狀太深,無法參與 VSS 作業。 此錯誤的可能原因包括:
  • 嘗試建立位於另一個 VHD 中之 VHD 上之磁碟區的陰影複製。
  • 當包含 VHD 的磁碟區也位於相同的陰影複製集中時,嘗試建立 VHD 磁碟區的陰影複製。
Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援此傳回碼。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
pwszVolumeName 未對應至現有的磁碟區或遠端檔案共用。
VSS_E_PROVIDER_NOT_REGISTERED
0x80042304L
ProviderId 未對應至已註冊的提供者。
VSS_E_PROVIDER_VETO
0x80042306L
預期的提供者錯誤。 提供者在事件記錄檔中記錄錯誤。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理
VSS_E_SNAPSHOT_SET_IN_PROGRESS
0x80042316L
另一個陰影複製建立正在進行中。 發生於同時將 CSV 磁碟區新增至多個節點的快照集,或同時將向外延展共用新增至多個 SMB 用戶端節點的快照集時。
VSS_E_VOLUME_NOT_SUPPORTED
0x8004230CL
ProviderId 參數的值GUID_NULL,而且沒有 VSS 提供者表示它支援指定的磁碟區或遠端檔案共用。
VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER
0x8004230EL
指定的提供者不支援磁碟區或遠端檔案共用。
VSS_E_UNEXPECTED
非預期的錯誤。 錯誤碼會記錄在錯誤記錄檔中。 如需詳細資訊,請參閱 VSS 下的事件和錯誤處理

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 在 Windows Server 2008 R2 和 Windows 7 之前,不支援此值。 E_UNEXPECTED改用。

VSS_E_UNEXPECTED_PROVIDER_ERROR
0x8004230FL
提供者傳回非預期的錯誤碼。 此錯誤碼只會透過 ppAsync 參數中傳回之 IVssAsync 介面上的 QueryStatus 方法傳回。

備註

Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008、Windows XP 和 Windows Server 2003: 除非 Windows 8 和 Windows Server 2012,否則不支援遠端檔案共用。

如果 pwszVolumeName 是 UNC 共用路徑,則伺服器名稱部分必須是主機名或完整功能變數名稱格式。 使用IP位址的 UNC 共用名必須先呼叫 IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths 方法來正規化,才能將它們傳遞至 AddToSnapshotSet

在一組陰影複製中,可進行陰影複製的磁碟區數目上限為 64 個。

如果 ProviderId 是GUID_NULL,則會根據下列演算法選取預設提供者:

  1. 如果有任何硬體提供者支援指定的磁碟區或遠端檔案共用,則會選取該提供者。
  2. 如果沒有可用的硬體提供者,如果有任何軟體提供者支援指定的磁碟區,則會選取它。
  3. 如果沒有可用的硬體提供者或軟體提供者,則會選取系統提供者。 (只有一個預安裝的系統提供者,必須支援所有不可移動的本機磁碟區。)
無法針對位於另一個 VHD 內巢狀的虛擬硬碟 (VHD) 呼叫這個方法。

Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 不支援 VHD。

pidSnapshot 參數中傳回的陰影複製標識符會儲存在備份元件檔中。 不過,沒有查詢此資訊的方法,而且呼叫端可能需要儲存它,以便在還原期間使用。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 vsbackup.h (包括 VsBackup.h、Vss.h、VsWriter.h)
程式庫 VssApi.lib

另請參閱

IVssBackupComponents

IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths

_VSS_VOLUME_SNAPSHOT_ATTRIBUTES