IVssComponent::GetDirectedTarget メソッド (vswriter.h)

GetDirectedTarget メソッドは、ライターがバックアップ時に保存した情報をバックアップ コンポーネント ドキュメントに返して、ファイルを復元するときに、ファイル (ソース ファイル) を再マップする必要があることを示します。 ファイルは、新しい復元ターゲットまたは復元ターゲットを持つ別の場所に復元されたデータの範囲に復元できます。

ライターまたはリクエスターは、このメソッドを呼び出すことができます。

構文

HRESULT GetDirectedTarget(
  [in]  UINT iDirectedTarget,
  [out] BSTR *pbstrSourcePath,
  [out] BSTR *pbstrSourceFileName,
  [out] BSTR *pbstrSourceRangeList,
  [out] BSTR *pbstrDestinationPath,
  [out] BSTR *pbstrDestinationFilename,
  [out] BSTR *pbstrDestinationRangeList
);

パラメーター

[in] iDirectedTarget

対象ターゲットのインデックス番号。 このパラメーターの値は、0 から n から 1 までの整数です。 ここで、n は、特定のコンポーネントに関連付けられた対象ターゲットの合計数です (コンポーネント セットを定義する場合はそのサブコンポーネント)。 n の値は、IVssComponent::GetDirectedTargetCount によって返されます。

[out] pbstrSourcePath

バックアップ時に復元するファイル (ソース ファイル) を含むディレクトリへのパスを含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。 このパスは、コンポーネントまたはそのサブコンポーネントの 1 つ (コンポーネントがコンポーネント セットを定義している場合) に既に存在するファイル セットのパスと一致するか、そのパスの下にある必要があります。

[out] pbstrSourceFileName

復元中に再マップされるファイルの名前 (バックアップ時) を含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス (ソース ファイル)。 このファイルの名前にはワイルドカード文字を含めず、ソース パス (pbstrSourcePath) と同じファイル セットのメンバーである必要があります。

[out] pbstrSourceRangeList

ソース ファイルのサポート範囲 (復元するファイルのセクション) を示す、コンマ区切りのファイル オフセットと長さのリストを含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。

ソース ファイルのサポート範囲の数と長さは、コピー先ファイルのサポート範囲の数とサイズと一致している必要があります。

[out] pbstrDestinationPath

復元時にソース ファイル データが再マップされるパスを含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。

[out] pbstrDestinationFilename

復元時にソース ファイル データが再マップされるファイルの名前を含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。

[out] pbstrDestinationRangeList

宛先ファイルのサポート範囲 (ソース ファイルのセクションを復元する場所) を示す、コンマ区切りのファイル オフセットと長さのリストを含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。

変換先ファイルのサポート範囲の数と長さは、ソース ファイルのサポート範囲の数とサイズと一致している必要があります。

戻り値

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

意味
S_OK
属性値が正常に返されました。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
呼び出し元がメモリ不足またはその他のシステム リソースです。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
VSS_E_OBJECT_NOT_FOUND
指定された項目が見つかりませんでした。

注釈

GetDirectedTarget の呼び出しが成功した場合、呼び出し元は SysFreeString 関数を呼び出すことによって、返される各文字列を解放する役割を担います。

リクエスターは、復元ターゲットがVSS_RT_DIRECTEDされている場合にのみ、バックアップ コンポーネント ドキュメントに格納されているダイレクト ターゲット情報を使用します。

範囲リスト (wszSourceRangeswszDestinationRanges) の構文は、 offset1:length1, offset2:length2 という形式のコンマ区切りリストの構文です。各オフセットと長さは、それぞれバイト オフセットと長さをバイト単位で指定する 64 ビット整数です。 オフセットと長さは、16 進数または 10 進値で表すことができます。

GetDirectedTarget によってダイレクト ターゲットが返されるファイルは、現在のコンポーネントのファイルのメンバー、または定義されているサブコンポーネントのメンバーである場合があります。

呼び出し元は、SysFreeString を呼び出して、pbstrSourcePathpbstrSourceFileNamepbstrSourceRangeListpbstrDestinationPathpbstrDestinationFilenameおよび pbstrDestinationRangeList パラメーターによって保持されているメモリを解放する必要があります。

バックアップする部分的なファイル範囲が対象のターゲット ソース範囲と一致する場合は、部分的なファイルをダイレクト ターゲットとして追加できます ( 「IVssComponent::AddPartialFile」を参照)。 これにより、部分的なファイルを再マップできます。

復元を正しく実装するために、ダイレクト ターゲット ソース ファイルが部分ファイルとしてバックアップされた場合、要求者はチェックする必要があります。 この場合、リクエスターは、転送先情報を部分ファイル情報 (IVssComponent::GetPartialFile) と組み合わせて使用して、復元中にバックアップされたデータの再マッピングを実装します。

要件

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

こちらもご覧ください

IVssComponent

IVssComponent::AddDirectedTarget

IVssComponent::GetDirectedTargetCount