バックアップ コンポーネントドキュメントの内容
バックアップ コンポーネント ドキュメントは、IVssBackupComponents インターフェイスのインスタンスによって管理されます。 このインターフェイスには、バックアップ操作の制御、シャドウ コピーの操作、システム状態のクエリを行うさまざまな方法も含まれています。 ただし、このインターフェイスを介してドキュメントのすべての情報に直接アクセスできるわけではありません。
バックアップ コンポーネント ドキュメントは、いくつかのデータ セットで構成されます。
- バックアップ操作または復元操作に明示的に含まれていたコンポーネントに関する情報
- 格納されているコンポーネントとライター情報の表現
- バックアップ/回復操作に関する状態情報
コンポーネント情報はリクエスターとライターの両方で使用できます。状態情報にアクセスできるのはライターだけです。
コンポーネント包含情報
バックアップ コンポーネント ドキュメントには、リクエスターによるバックアップと復元に明示的に含まれているコンポーネントの一覧が含まれています。 この一覧には、次のものが含まれています。
-
これらのファイルをバックアップ操作に含めることは、IVssBackupComponents::AddComponent によって示され、復元操作では IVssBackupComponents::SetSelectedForRestoreによってされます。
バックアップ コンポーネントの先祖を選択できないバックアップ サブコンポーネントの場合は選択できません。
ライターのコンポーネントを操作に含める場合は、これらすべてのコンポーネントを含める必要があります。 これらのファイルをバックアップ操作に含めることは、IVssBackupComponents::AddComponent によって示され、復元操作では IVssBackupComponents::SetSelectedForRestoreによってされます。
バックアップに暗黙的に追加されたコンポーネント (サブコンポーネント) は、復元に対して選択、明示的に復元に追加されます。
これらのコンポーネントは選択可能でも選択不可でもかまいませんが、バックアップ用に暗黙的に選択するために使用された選択可能な先祖が存在します。 これらは、IVssBackupComponents::AddRestoreSubcomponentをしてバックアップ コンポーネント ドキュメントに追加されます。
復元に暗黙的に含まれるコンポーネントの ID は、バックアップ コンポーネント ドキュメントに格納されません。
VSS は、コンポーネントの包含に関する情報にアクセスできます。復元またはバックアップに明示的に含まれるコンポーネントのないライターは、PrepareForBackup の生成後に VSS イベントを受け取ったり、preRestoreイベントをしたりしません。
ライターは、この情報に対して直接クエリを実行することはできません。 設計上、個々の VSS ライターはシステム上の他のライターの状態に関する詳細情報を必要とせず、前述のように、コンポーネントが含まれていないユーザーは VSS 操作に参加する必要がないため、これは大きな制限ではありません。
要求元は、どのコンポーネントが操作に明示的に含まれているかを判断できます。
IVssBackupComponents::GetWriterComponentsCount メソッドは、(ドキュメント内のコンポーネントの数ではなく) バックアップ コンポーネント ドキュメントに格納されているコンポーネント情報を持つライターの数を返します。
リクエスターは、IVssBackupComponents::GetWriterComponentsを使用して、格納されているライター情報を通じてインデックスを作成します。これは、IVssWriterComponentsExt インターフェイスのインスタンスを返します。 IVssWriterComponentsExt インターフェイスを使用すると、リクエスターは、参加しているライターの ライター クラス および ライター インスタンス を取得したり、バックアップ コンポーネント ドキュメントに格納されているコンポーネントに関する情報にアクセスしたりできます。
含まれるコンポーネントに関する情報
IVssComponent インターフェイスのインスタンスを介してアクセスされる、バックアップ コンポーネント ドキュメントのコンポーネント データの表現 (パスとファイルの仕様情報は含まれません)。
要求者とライターは、さまざまな方法で IVssComponent インターフェイスのインスタンスにアクセスできます。
リクエスターは、IVssBackupComponents::GetWriterComponentsによって返される IVssWriterComponentsExt インターフェイスのインスタンスを使用して、ライターごとにコンポーネント データを調べます。
ライター識別情報に加えて、IVssWriterComponentsExt インターフェイスは、IVssComponent インターフェイスのインスタンスの配列を提供します。これは、選択したライターに含まれるコンポーネントごとに 1 つずつです。
バックアップ コンポーネントドキュメントライフサイクルで説明したように、ライターは PrepareForBackup、PrepareForSnapshot、PostSnapshot、BackupComplete、PreRestore、または PostRestore イベントを処理するときに、IVssWriterComponents インターフェイスを介して同じ情報にアクセスできます。
IVssComponent を使用すると、ライターとリクエンターの両方で次の情報を取得できます。
- コンポーネントの名前、型、および 論理パス (GetComponentName, GetComponentType, GetLogicalPath)
- 復元ターゲット (IVssComponent::GetRestoreTarget) で示されているように、コンポーネントを復元する方法
- ファイルの復元で別の場所が使用された場合 (GetAlternateLocationMapping、GetAlternateLocationMappingCount)
- 新しいターゲット情報がある場合 (GetNewTarget、GetNewTargetCount)
- 復元前および復元後のエラー メッセージ (GetPreRestoreFailureMsg, GetPostRestoreFailureMsg)
- コンポーネント セットを定義するコンポーネントバックアップに選択可能なが復元用に選択されている場合 (isSelectedForRestore)
- バックアップまたは復元が成功したかどうか (GetBackupSucceeded、GetFileRestoreStatusを)
- IVssBackupComponents::SetBackupOptionsまたはIVssBackupComponents::SetRestoreOptions (GetBackupOptions, GetRestoreOptions) によって設定された可能性のあるライター固有のバックアップまたは復元オプション
- ライター固有のメタデータのバックアップまたは復元メタデータ (GetBackupMetadata) GetRestoreMetadata)
- タイムスタンプ情報 (GetBackupStamp, GetPreviousBackupStamp)
- 復元に明示的に含まれるバックアップ サブコンポーネントに関する情報 (GetRestoreSubcomponent、GetRestoreSubcomponentCount)
要求元とは異なり、ライターは、IVssComponent インターフェイスを使用して、バックアップ コンポーネント ドキュメント内の特定の情報を変更できます。
- 復元ターゲットで示されているようにコンポーネントを復元する方法 (IVssComponent::SetRestoreTarget)
- ライター固有のバックアップと復元のメタデータ (IVssComponent::SetBackupMetadata, IVssComponent::SetRestoreMetadata)
- タイムスタンプ情報 (SetBackupStamp)
- 復元前および復元後のエラー メッセージ (SetPreRestoreFailureMsg、SetPostRestoreFailureMsgの)
要求元の状態情報
要求者は、IVssBackupComponents インターフェイスを使用して、バックアップまたは復元操作の状態に関する情報をバックアップ コンポーネント ドキュメントに挿入します。 ライター アプリケーションは、CSVsWriter クラスを使用して、この情報を照会できます。
バックアップ コンポーネント ドキュメントに格納されている状態情報には、次のものが含まれます。
バックアップに関する一般的な情報
- 全体的なバックアップの種類 (増分、差分、または完全)
IVssBackupComponents::SetBackupState を使用して要求者によって設定されます
CSVsWriter::GetBackupType を使用してライターによって取得されます
-
IVssBackupComponents::SetBackupState を使用して要求者によって設定されます
-
CSVsWriter::AreComponentsSelected を使用してライターによって取得されます
-
IVssBackupComponents::SetBackupState を使用して要求者によって設定されます
-
CSVsWriter::IsBootableStateBackedUp を使用してライターによって取得されます
-
IVssBackupComponents::SetBackupState を使用して要求者によって設定されます
-
CSVsWriter::IsPartialFileSupportEnabled を使用してライターによって取得されます
復元に関する一般的な情報
- 全体的な復元の種類 (復元の種類がコピーまたはインポートのどちらであるか)
IVssBackupComponents::SetRestoreState を使用して要求者によって設定されます
CSVsWriter::GetRestoreType を使用してライターによって取得されます
関連ファイルに関する情報
- 部分ファイル操作で特定のコンポーネントによって使用される範囲ファイルの場所
IVssBackupComponents::SetRangesFilePath を使用して要求者によって設定されます
IVssComponent::GetPartialFile を使用してライター (またはリクエンター) によって取得されます
情報の状態
- 特定のライターのコンポーネントのいずれかが正常にバックアップされたかどうかを示します
IVssBackupComponents::SetBackupSucceeded を使用して要求者によって設定されます
IVssComponent::GetBackupSucceeded を使用してライターとリクエンターによって取得されます
-
IVssBackupComponents::SetFileRestoreStatus を使用して要求者によって設定されます
-
IVssComponent::GetFileRestoreStatus を使用してライターとリクエスターによって取得されます
Writer-Settable 情報
- 特定のライターのコンポーネントの 1 つに対する追加のバックアップ仕様
IVssComponent::SetBackupMetadata を使用してライターによって設定されます
IVssComponent::GetBackupMetadata を使用してライターとリクエンターによって取得されます
-
IVssComponent::SetRestoreMetadata を使用してライターによって設定されます
-
IVssComponent::GetRestoreMetadata を使用してライターと要求者によって取得されます
-
IVssComponent::SetBackupStamp を使用してライターによって設定されます
-
IVssComponent::GetBackupStamp を使用してライターとリクエンターによって取得されます
-
IVssBackupComponents::SetPreviousBackupStamp を使用して、特定のコンポーネントのリクエスターによって格納および設定されます。
-
IVssComponent::GetPreviousBackupStamp を使用してライターと要求者によって取得されます
-
IVssComponent::SetPreRestoreFailureMsg または IVssComponent::SetPostRestoreFailureMsg を使用してライターによって設定
-
IVssComponent::GetPreRestoreFailureMsg または IVssComponent::GetPostRestoreFailureMsg を使用してライターとリクエスターによって取得されます