IVssBackupComponents::AddToSnapshotSet メソッド (vsbackup.h)

AddToSnapshotSet メソッドは、元のボリュームまたは元のリモート ファイル共有をシャドウ コピー セットに追加します。

構文

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

パラメーター

[in] pwszVolumeName

ボリュームの名前またはシャドウ コピーするリモート ファイル共有の UNC パスを含む Null で終わるワイド文字列。 名前または 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
パラメーター値の 1 つが無効です。
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
もう 1 つのシャドウ コピーの作成は既に進行中です。 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 共有名は、AddToSnapshotSet に渡される前に IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths メソッドを呼び出して正規化する必要があります。

1 つのシャドウ コピー セットでシャドウ コピーされるボリュームの最大数は 64 です。

ProviderId がGUID_NULL場合は、次のアルゴリズムに従って既定のプロバイダーが選択されます。

  1. ハードウェア プロバイダーが特定のボリュームまたはリモート ファイル共有をサポートしている場合は、そのプロバイダーが選択されます。
  2. 使用可能なハードウェア プロバイダーがない場合、ソフトウェア プロバイダーが特定のボリュームをサポートしている場合は、そのプロバイダーが選択されます。
  3. 使用可能なハードウェア プロバイダーまたはソフトウェア プロバイダーがない場合は、システム プロバイダーが選択されます。 (プレインストールされているシステム プロバイダーは 1 つだけで、すべての非移動可能なローカル ボリュームをサポートする必要があります)。
別の 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 を含む)
Library VssApi.lib

こちらもご覧ください

IVssBackupComponents

IVssBackupComponentsEx4::GetRootAndLogicalPrefixPaths

_VSS_VOLUME_SNAPSHOT_ATTRIBUTES