次の方法で共有


IVssCreateWriterMetadata::AddComponentDependency メソッド (vswriter.h)

AddComponentDependency メソッドを使用すると、ライターは、それが管理するコンポーネントに明示的なライター コンポーネントの依存関係があることを示すことができます。つまり、別のライター内の別のコンポーネントをバックアップし、それを使用して復元する必要があります。

構文

HRESULT AddComponentDependency(
  [in] LPCWSTR wszForLogicalPath,
  [in] LPCWSTR wszForComponentName,
  [in] VSS_ID  onWriterId,
  [in] LPCWSTR wszOnLogicalPath,
  [in] LPCWSTR wszOnComponentName
);

パラメーター

[in] wszForLogicalPath

依存関係を必要とするコンポーネント (現在のライターによって管理される) の論理パスを含む null で終わるワイド文字列。

[in] wszForComponentName

依存関係を必要とする (現在のライターによって管理される) コンポーネントを含む null で終わるワイド文字列。

[in] onWriterId

現在のコンポーネントが依存するコンポーネントを管理するライターのクラス ID または VSS_ID (GUID)。

[in] wszOnLogicalPath

現在のコンポーネントが依存するコンポーネントの論理パス ( onWriterId によって識別されるライターによって管理されます)。

[in] wszOnComponentName

現在のコンポーネントが依存するコンポーネントの名前 ( onWriterId によって識別されるライターによって管理されます)。

戻り値

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

説明
S_OK
操作に成功しました。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
呼び出し元がメモリやその他のシステム リソースを使い切れている。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
VSS_E_OBJECT_NOT_FOUND
wszForLogicalPath および wszForComponentName で指定されたコンポーネントが存在しません。
VSS_E_UNEXPECTED
予期しないエラー。 エラー コードは、エラー ログ ファイルに記録されます。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。

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

解説

現在のライターによって管理されているコンポーネントへの依存関係は許可されません。

依存関係では、依存関係のターゲットとターゲットに依存するコンポーネントの両方を復元して一緒にバックアップする必要があります。 コンポーネント間の優先順位は示されませんが、リクエスターはそれを実装することを選択できます。

論理名とコンポーネント名の組み合わせは、ライター クラスのすべてのインスタンスで一意である必要があるため、複数のライターが同じクラス ID を持つことは問題ではありません。

このメソッドを使用して、リモート依存関係を宣言できます。 ライターは、"\\RemoteComputerName" をプリペンドすることでリモート依存関係を宣言できます。 RemoteComputerName は、リモート コンポーネントが存在するコンピューターの名前を wszOnLogicalPath パラメーターの論理パスに指定します。 RemoteComputerName の値には、IP アドレスまたは GetComputerNameEx 関数によって返されるコンピューター名を指定できます。

リモート コンポーネントがクラスター上にある場合、ライターはクラスターの仮想名を報告する必要があります。ボリューム シャドウ コピーを作成する前に、仮想名をクラスター ノードの物理名にマップするのは要求者の責任です。

依存関係がローカルかリモートかを判断するには、要求者は pbstrComponentName パラメーターで返されるコンポーネント名を調べる必要があります。 コンポーネント名が "\" で始まる場合、要求者はリモート依存関係を指定し、"\" に続く最初のコンポーネントがライターによって指定された RemoteComputerName であると想定する必要があります。 コンポーネント名が "\" で始まらない場合、リクエスターはローカル依存関係を指定すると想定する必要があります。

Windows Server 2003: Windows Server 2003 Service Pack 1 (SP1) まで、このメソッドを使用してリモート依存関係を宣言することはできません。

要件

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