次の方法で共有


バックアップ コンポーネントドキュメントの内容

バックアップ コンポーネント ドキュメントは、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 を使用すると、ライターとリクエンターの両方で次の情報を取得できます。

要求元とは異なり、ライターは、IVssComponent インターフェイスを使用して、バックアップ コンポーネント ドキュメント内の特定の情報を変更できます。

要求元の状態情報

要求者は、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 を使用してライターとリクエンターによって取得されます

- 特定のライターのコンポーネントの 1 つに対する追加の復元仕様

IVssComponent::SetRestoreMetadata を使用してライターによって設定されます

IVssComponent::GetRestoreMetadata を使用してライターと要求者によって取得されます

- ライター独自の特定の形式で、コンポーネントのバックアップの現在のバックアップの時刻を示すバックアップ スタンプ

IVssComponent::SetBackupStamp を使用してライターによって設定されます

IVssComponent::GetBackupStamp を使用してライターとリクエンターによって取得されます

- ライター固有の形式で、最初に IVssComponent::SetBackupStamp によって設定されたバックアップ スタンプを使用して、そのコンポーネントのいずれかのバックアップの最後のバックアップの時刻を示すバックアップ スタンプ。

IVssBackupComponents::SetPreviousBackupStamp を使用して、特定のコンポーネントのリクエスターによって格納および設定されます。

IVssComponent::GetPreviousBackupStamp を使用してライターと要求者によって取得されます

- 復元操作の前後にエラーが発生した場合のエラー メッセージ

IVssComponent::SetPreRestoreFailureMsg または IVssComponent::SetPostRestoreFailureMsg を使用してライターによって設定

IVssComponent::GetPreRestoreFailureMsg または IVssComponent::GetPostRestoreFailureMsg を使用してライターとリクエスターによって取得されます