次の方法で共有


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

GetWriterComponents メソッドは、要求者のバックアップ コンポーネント ドキュメントに格納されている特定のライターのコンポーネントに関する情報を返すために使用されます。

構文

HRESULT GetWriterComponents(
  [in]  UINT                    iWriter,
  [out] IVssWriterComponentsExt **ppWriter
);

パラメーター

[in] iWriter

クエリ対象のライターのインデックス。 これは 0 から n-1 までの数値です。 ここで、nIVssBackupComponents::GetWriterComponentsCount によって返される値です。

[out] ppWriter

返されるコンポーネント情報を受け取る IVssWriterComponentsExt インターフェイス オブジェクトへの二重間接ポインター。

戻り値

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

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

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

注釈

このメソッドの呼び出し元は、コンポーネント情報へのアクセスが完了したときに IUnknown::Release を呼び出す必要があります。

GetWriterComponents は、 以前の IVssBackupComponents::AddComponent の呼び出しによって、バックアップ コンポーネント ドキュメントに格納されているコンポーネントのコンポーネント情報を取得します。

バックアップ コンポーネント ドキュメントに格納されているコンポーネントの情報は静的ではありません。 復元中にライターがコンポーネントを更新した場合、その変更は GetWriterComponents によって取得されたコンポーネントに反映されます。 これは、IVssExamineWriterMetadata::GetComponent によって返される IVssWMComponent オブジェクト内のコンポーネント情報とは対照的です。 この情報は読み取り専用であり、ライター プロセスのライター メタデータ ドキュメントから取得されます。

pWriterComponents パラメーターで返される IVssWriterComponentsExt インターフェイス ポインターは、次の IVssBackupComponents メソッドによって GetWriterComponents によって返されるインターフェイス ポインターが無効になるため、キャッシュしないでください。

IVssBackupComponents::P repareForBackupIVssBackupComponents::D oSnapshotSetIVssBackupComponents::BackupCompleteIVssBackupComponents::P reRestoreIVssBackupComponents::P ostRestoreGetWriterComponents を呼び出して IVssWriterComponentsExt インターフェイス ポインターを取得した後にこれらのメソッドのいずれかを呼び出した場合、そのポインターを再利用することはできません。 有効ではなくなったためです。 代わりに、 GetWriterComponents を再度呼び出して、新しい IVssWriterComponentsExt インターフェイス ポインターを取得する必要があります。

要件

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

こちらもご覧ください

IVssBackupComponents

IVssBackupComponents::AddComponent

IVssBackupComponents::GatherWriterMetadata

IVssBackupComponents::GetWriterComponentsCount

IVssBackupComponents::GetWriterMetadata

IVssBackupComponents::P reRestore

IVssExamineWriterMetadata

IVssExamineWriterMetadata::GetComponent

IVssWriterComponents

IVssWriterComponentsExt