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 によって識別されるライターによって管理されます)。
戻り値
このメソッドの有効なリターン コードを次に示します。
値 | 説明 |
---|---|
|
操作に成功しました。 |
|
パラメーター値の 1 つが無効です。 |
|
呼び出し元がメモリやその他のシステム リソースを使い切れている。 |
|
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。 |
|
wszForLogicalPath および wszForComponentName で指定されたコンポーネントが存在しません。 |
|
予期しないエラー。 エラー コードは、エラー ログ ファイルに記録されます。 詳細については、「 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 |