バックアップ コンポーネントドキュメントの内容
バックアップ コンポーネント ドキュメントは、 IVssBackupComponents インターフェイスのインスタンスによって管理されます。 このインターフェイスには、バックアップ操作の制御、シャドウ コピーの操作、システム状態のクエリを行うさまざまな方法も含まれています。 ただし、このインターフェイスを介してドキュメントのすべての情報に直接アクセスできるわけではありません。
バックアップ コンポーネント ドキュメントは、次のいくつかのデータ セットで構成されています。
- バックアップ操作または復元操作に明示的に含まれていたコンポーネントに関する情報
- 格納されているコンポーネントとライター情報の表現
- バックアップ/回復操作に関する状態情報
リクエスターとライターの両方でコンポーネント情報を使用できる一方で、状態情報にアクセスできるのはライターだけです。
コンポーネント包含情報
バックアップ コンポーネント ドキュメントには、リクエスターによるバックアップと復元に明示的に含まれるコンポーネントの一覧が含まれています。 この一覧には、次のものが含まれます。
選択可能 なコンポーネントを明示的に含む。
これらのファイルをバックアップ操作に含めることは、 IVssBackupComponents::AddComponents::AddComponent と 、IVssBackupComponents::SetSelectedForRestore による復元操作で示されます。
バックアップ コンポーネントの先祖を選択できないバックアップ サブコンポーネントの場合は選択できません。
ライターのコンポーネントを操作に含める場合は、これらすべてのコンポーネントを含める必要があります。 これらのファイルをバックアップ操作に含めることは、 IVssBackupComponents::AddComponents::AddComponent と 、IVssBackupComponents::SetSelectedForRestore による復元操作で示されます。
復元用に選択でき、明示的に復元に追加されるバックアップ (サブコンポーネント) に暗黙的に追加されるコンポーネント。
これらのコンポーネントは選択可能でも非選択でもかまいませんが、バックアップ用に暗黙的に選択するために使用された選択可能な先祖があります。 これらは、 IVssBackupComponents::AddRestoreSubcomponent によってバックアップ コンポーネント ドキュメントに追加されます。
復元に暗黙的に含まれるコンポーネントの ID は、バックアップ コンポーネント ドキュメントに格納されません。
VSS は、コンポーネントの包含に関する情報にアクセスできます。復元またはバックアップにコンポーネントが明示的に含まれていないライターは、 PrepareForBackup または PreRestore イベントの生成後に VSS イベントを受信しません。
ライターは、この情報に対して直接クエリを実行することはできません。 仕様上、個々の 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 インターフェイスを使用して、バックアップまたは復元操作の状態に関する情報をバックアップ コンポーネント ドキュメントに挿入します。 ライター アプリケーションは、 CVssWriter クラスを使用してこの情報を照会できます。
バックアップ コンポーネント ドキュメントに格納されている状態情報には、次のものが含まれます。
バックアップに関する一般的な情報
- 全体的なバックアップの種類 (増分、差分、または完全)
IVssBackupComponents::SetBackupState を使用して要求者によって設定される
復元に関する一般的な情報
- 全体的な復元の種類 (復元がコピーまたはインポートのどちらによるか)
IVssBackupComponents::SetRestoreState を使用して要求者によって設定される
関連ファイルに関する情報
- 部分ファイル操作で特定のコンポーネントによって使用される範囲ファイルの場所
IVssBackupComponents::SetRangesFilePath を使用して要求者によって設定される
情報の状態
- 特定のライターのコンポーネントのいずれかが正常にバックアップされたかどうかを示す
IVssBackupComponents::SetBackupSucceeded を使用して要求者によって設定される
-
IVssBackupComponents::SetFileRestoreStatus を使用して要求者によって設定される
-
IVssComponent::GetFileRestoreStatus を使用してライターとリクエスターによって取得されます
Writer-Settable情報
- 特定のライターのコンポーネントの 1 つに対する追加のバックアップ仕様
IVssComponent::SetBackupMetadata を使用してライターによって設定される
-
IVssBackupComponents::SetPreviousBackupStamp を使用して、特定のコンポーネントの要求者によって格納および設定されます
-
IVssComponent::GetPreviousBackupStamp を使用してライターと要求者によって取得されます
-
IVssComponent::SetPreRestoreFailureMsg または IVssComponent::SetPostRestoreFailureMsg を使用してライターによって設定される
-
IVssComponent::GetPreRestoreFailureMsg または IVssComponent::GetPostRestoreFailureMsg を使用してライターとリクエスターによって取得されます