次の方法で共有


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

AddAlternativeLocationMapping メソッドは、指定されたコンポーネント内のファイル セットのすべてのメンバーを復元するために代替の場所マッピングが使用されたことを示すために、リクエスターによって使用されます。

構文

HRESULT AddAlternativeLocationMapping(
  [in] VSS_ID             writerId,
  [in] VSS_COMPONENT_TYPE componentType,
  [in] LPCWSTR            wszLogicalPath,
  [in] LPCWSTR            wszComponentName,
  [in] LPCWSTR            wszPath,
  [in] LPCWSTR            wszFilespec,
  [in] bool               bRecursive,
  [in] LPCWSTR            wszDestination
);

パラメーター

[in] writerId

コンポーネントをエクスポートしたライター クラスのグローバル一意識別子 (GUID)。

[in] componentType

コンポーネントの種類。 このパラメーターに指定できる値は、 VSS_COMPONENT_TYPE 列挙によって定義されます。

[in] wszLogicalPath

コンポーネントへの論理パスを含む Null で終わるワイド文字列。

詳細については、「 コンポーネントの論理パス」を参照してください。

論理パスには NULL を指定できます。

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

[in] wszComponentName

コンポーネント名を含む Null で終わるワイド文字列。

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

[in] wszPath

移動するファイルが最初に格納されていたディレクトリへのパスを含む Null で終わるワイド文字列。 このパスは VSS マシンに対してローカルにすることも、リモート ファイル サーバー上のファイル共有ディレクトリにすることもできます。

パスには環境変数 (%SystemRoot%) を含めることができますが、ワイルドカード文字を含めることはできません。 UNC パスがサポートされています。

パスが円記号 ("") で終わるという要件はありません。 この情報を取得するのはアプリケーションによってチェック。

[in] wszFilespec

元のファイル仕様を含む Null で終わるワイド文字列。

ファイル指定にディレクトリ指定を含めることはできません (たとえば、バックスラッシュは含めません)、 を含めることができます。 および * ワイルドカード文字。

[in] bRecursive

wszPath パラメーターで指定されたパスが 1 つのディレクトリのみを識別するかどうか、または再帰的に走査するディレクトリの階層を示すかどうかを示すブール値。 パスが再帰的に走査されるディレクトリの階層として扱われる場合は true 、そうでない場合は false に設定する必要があります。

マウントされたフォルダーの走査の詳細については、「マウント されたフォルダーの操作」と「ポイントの再解析」を参照してください。

[in] wszDestination

ファイルが再配置されるディレクトリの名前を含む Null で終わるワイド文字列。 このパスは VSS マシンに対してローカルにすることも、リモート ファイル サーバー上のファイル共有ディレクトリにすることもできます。 UNC パスがサポートされています。

戻り値

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

意味
S_OK
代替場所マッピングが正常に追加されました。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
呼び出し元がメモリやその他のシステム リソースを使い切れている。
VSS_E_BAD_STATE
バックアップ コンポーネント オブジェクトが初期化されていないか、復元操作中にこのメソッドが呼び出されたか、このメソッドが正しいシーケンス内で呼び出されていません。
VSS_E_INVALID_XML_DOCUMENT
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
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 が使用されます。

注釈

Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008、Windows XP、Windows Server 2003: リモート ファイル共有は、Windows 8してWindows Server 2012するまでサポートされません。

writerIdcomponentTypewszLogicalPathおよび wszComponentName パラメーターは特定のコンポーネントを識別し、wszPath、wszFilespecおよび bRecursive パラメーターは、そのコンポーネントに属するファイル セットを識別します。

パス、ファイル指定、再帰フラグの組み合わせ (wszPath、 マップされる AddAlternativeLocationMapping にそれぞれ提供される wszFilespecbRecursive) は、IVssCreateWriterMetadata::AddFilesToFileGroupIVssCreateWriterMetadata::AddDatabaseFiles、または IVssCreateWriterMetadata::AddDatabaseLogFiles を使用してコンポーネントに追加されたファイル セットの 1 つと一致する必要があります。

AddAlternativeLocationMapping は、コンポーネント内のすべてのファイルを復元するために別の場所が使用されたことをライターに通知するために使用されるため、代替の場所マッピングが指定されていないコンポーネントまたはコンポーネント内のファイルに対しては呼び出さないでください。

wszPath の値は、復元時に wszDestination にマップされます。ただし、元のパスの下のファイル名とサブディレクトリは同じ名前を保持します。

復元中の AddAlternativeLocationMapping の一般的な使用方法は次のとおりです。

  1. 保存されたライター メタデータ ドキュメントをバックアップ メディアから取得し、その情報を IVssExamineWriterMetadata::LoadFromXML で読み込みます。
  2. マッピング情報を使用して IVssWMFiledesc インターフェイスを取得し、IVssWMFiledesc::GetAlternateLocation を使用して代替の場所を取得するには、IVssExamineWriterMetadata::GetAlternateLocationMapping を呼び出します。
  3. filedesc 情報を調べて、この代替ロケーション マッピングを適用する必要があるコンポーネントをヒューリスティックに決定します。
  4. IVssBackupComponents::AddAlternativeLocationMapping を呼び出して、ファイルが復元された場所を伝える。
次のいずれかが当てはまる場合は、常にファイルを別の場所マッピングに復元する必要があります。
  • 復元方法 (バックアップ時に設定) がVSS_RME_RESTORE_TO_ALTERNATE_LOCATION。
  • その復元ターゲットが (復元時に) VSS_RT_ALTERNATEに設定されました。
いずれの場合も、有効な代替ロケーション・マッピングが定義されていない場合、これはライター・エラーを構成します。

次のいずれかが当てはまる場合は、ファイルを別の場所マッピングに復元できます。

  • 復元方法はVSS_RME_RESTORE_IF_NOT_THEREであり、ファイルのバージョンは既にディスク上に存在します。
  • 復元方法がVSS_RME_RESTORE_IF_CAN_REPLACEされ、ファイルのバージョンがディスク上に存在し、置き換えることはできません。
ここでも、有効な代替場所マッピングが定義されていない場合、これはライター エラーを構成します。

代替の場所マッピングは復元操作中にのみ使用され、バックアップ操作中にのみ使用される代替パスと混同しないでください。

要件

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

こちらもご覧ください

IVssBackupComponents

IVssWMFiledesc::GetAlternateLocation

VSS_COMPONENT_TYPE