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 パスがサポートされています。
戻り値
このメソッドの有効なリターン コードを次に示します。
値 | 意味 |
---|---|
|
代替場所マッピングが正常に追加されました。 |
|
パラメーター値の 1 つが無効です。 |
|
呼び出し元がメモリやその他のシステム リソースを使い切れている。 |
|
バックアップ コンポーネント オブジェクトが初期化されていないか、復元操作中にこのメソッドが呼び出されたか、このメソッドが正しいシーケンス内で呼び出されていません。 |
|
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。 |
|
指定されたコンポーネントが存在しません。 |
|
予期しないエラー。 エラー コードは、エラー ログ ファイルに記録されます。 詳細については、「 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するまでサポートされません。
writerId、componentType、wszLogicalPath、および wszComponentName パラメーターは特定のコンポーネントを識別し、wszPath、wszFilespec、および bRecursive パラメーターは、そのコンポーネントに属するファイル セットを識別します。
パス、ファイル指定、再帰フラグの組み合わせ (wszPath、 マップされる AddAlternativeLocationMapping にそれぞれ提供される wszFilespec と bRecursive) は、IVssCreateWriterMetadata::AddFilesToFileGroup、IVssCreateWriterMetadata::AddDatabaseFiles、または IVssCreateWriterMetadata::AddDatabaseLogFiles を使用してコンポーネントに追加されたファイル セットの 1 つと一致する必要があります。
AddAlternativeLocationMapping は、コンポーネント内のすべてのファイルを復元するために別の場所が使用されたことをライターに通知するために使用されるため、代替の場所マッピングが指定されていないコンポーネントまたはコンポーネント内のファイルに対しては呼び出さないでください。
wszPath の値は、復元時に wszDestination にマップされます。ただし、元のパスの下のファイル名とサブディレクトリは同じ名前を保持します。
復元中の AddAlternativeLocationMapping の一般的な使用方法は次のとおりです。
- 保存されたライター メタデータ ドキュメントをバックアップ メディアから取得し、その情報を IVssExamineWriterMetadata::LoadFromXML で読み込みます。
- マッピング情報を使用して IVssWMFiledesc インターフェイスを取得し、IVssWMFiledesc::GetAlternateLocation を使用して代替の場所を取得するには、IVssExamineWriterMetadata::GetAlternateLocationMapping を呼び出します。
- filedesc 情報を調べて、この代替ロケーション マッピングを適用する必要があるコンポーネントをヒューリスティックに決定します。
- 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 |