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

AddComponent メソッドを使用して、バックアップ コンポーネント ドキュメント内のバックアップ セットに明示的に追加します (バックアップの先祖を選択できないバックアップ コンポーネントの場合は選択できません)、リクエスターが必要と考える省略可能な (バックアップ用に選択可能な) コンポーネント。 コンポーネント セットのメンバー (バックアップ先祖に選択可能なコンポーネント) は、バックアップ セットに暗黙的に含まれますが、バックアップ コンポーネント ドキュメントには明示的に追加されません。

構文

HRESULT AddComponent(
  [in] VSS_ID             instanceId,
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE ct,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName
);

パラメーター

[in] instanceId

ライターの特定のインスタンスを識別します。

[in] writerId

ライター クラス識別子。

[in] ct

コンポーネントの種類を識別します。 許可される入力値については、 VSS_COMPONENT_TYPE に関するドキュメントを参照してください。

[in] wszLogicalPath

バックアップ コンポーネント用に選択可能な の論理パスを含む Null で終わるワイド文字列。 詳細については、「 コンポーネントの論理パス」を参照してください。

コンポーネントを追加する場合、論理パスは必要ありません。 したがって、このパラメーターの値は NULL にすることができます。

NULL 以外の論理パスに使用できる文字に制限はありません。

[in] wszComponentName

バックアップ コンポーネントの選択可能な名前を含む Null で終わるワイド文字列。

このパラメーターの値を NULL にすることはできません。

NULL 以外の論理パスに使用できる文字に制限はありません。

戻り値

このメソッドの有効なリターン コードを次に示します。

意味
S_OK
コンポーネントが正常に追加されました。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
呼び出し元がメモリ不足またはその他のシステム リソースです。
VSS_E_BAD_STATE
バックアップ コンポーネント オブジェクトが初期化されていないか、復元操作中にこのメソッドが呼び出されたか、このメソッドが正しいシーケンス内で呼び出されていません。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
VSS_E_OBJECT_ALREADY_EXISTS
オブジェクトが重複しています。 同じ論理パスとコンポーネント名を持つコンポーネントが既に存在します。
VSS_E_UNEXPECTED
予期しないエラー。 エラー コードはエラー ログ ファイルに記録されます。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は、Windows Server 2008 R2 および Windows 7 まではサポートされません。 代わりに、E_UNEXPECTEDが使用されます。

注釈

AddComponent メソッドは、バックアップ操作がコンポーネント モードで実行される場合にのみ意味を持ちます。

これらの種類のコンポーネントのみを 、AddComponent を使用してバックアップ コンポーネント ドキュメントに追加する必要があります。

  • バックアップに選択可能なコンポーネント (バックアップ の選択性に関するページを参照)。
  • 選択可能なバックアップの先祖が存在しない、選択できないバックアップ コンポーネント。

論理パスの階層内のバックアップ先祖に対して選択可能なバックアップ コンポーネントの場合、選択可能なバックアップ先祖によって定義されたコンポーネント セットの一部です。 これらのコンポーネントは、先祖が追加されるときにバックアップ コンポーネント ドキュメントに暗黙的に追加され、 AddComponent を使用して要求元のバックアップ コンポーネント ドキュメントに明示的に追加しないでください。その結果は未定義です ( 「選択可能性と論理パスの操作」を参照してください)。

バックアップ先祖に対して選択可能なバックアップ コンポーネントに対して選択可能は、コンポーネント セット内のサブコンポーネントでもあります。 先祖が選択されている場合 ( AddComponent を使用してバックアップ コンポーネント ドキュメントに追加されない場合)、または AddComponent を使用して明示的に選択できる場合は、暗黙的に選択できます。

特定のライター クラスの特定のインスタンスの各コンポーネントの論理パスと名前の組み合わせは一意である必要があります。 wszLogicalPathwszComponentName の値が同じ AddComponent を 2 回呼び出そうとすると、VSS_E_OBJECT_ALREADY_EXISTS エラーが発生します。

じライターに対して複数のコピーを実行できるため、instanceId と writerID の区別が必要です。

ライターのクラス識別子とインスタンスは、 IVssExamineWriterMetadata::GetIdentity を呼び出すことによって見つけることができます。

AddComponent を呼び出す前に、要求元が IVssBackupComponents::InitializeForBackup および IVssBackupComponents::GatherWriterMetadata を呼び出して、バックアップ用に初期化されている必要があります。 「バックアップの初期化の概要」を参照してください

要求元は、シャドウ コピーを作成するために IVssBackupComponents::D oSnapshotSet を呼び出す前に、必要なコンポーネントをシャドウ コピーに追加するために AddComponent を呼び出す必要があります。 バックアップ検出フェーズの概要とバックアップ前タスクの概要に関するページを参照してください。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー vsbackup.h (VsBackup.h、Vss.h、VsWriter.h を含む)
Library VssApi.lib

こちらもご覧ください

CSVsWriter::Initialize

IVssBackupComponents

IVssBackupComponents::P repareForBackup

IVssExamineWriterMetadata::GetIdentity

VSS_COMPONENT_TYPE