次の方法で共有


ライターの状態の確認

要求元は、シャドウ コピーの作成中、バックアップと復元の操作中に、共に参加するライターの状態について明確に理解する必要があります。 そのためには、次のことをお勧めします。

IVssBackupComponents::PrepareForBackup

IVssBackupComponents::DoSnapshotSet

IVssBackupComponents::BackupComplete

復元操作中、要求元は次のメソッドの完了後に、ライターにクエリを実行する必要があります。

IVssBackupComponents::PreRestore

IVssBackupComponents::PostRestore

  • 明確に定義されたバックアップまたは復元シーケンスの一部ではない IVssBackupComponents::GatherWriterStatus の呼び出しは、ライターの状態の信頼できる状況を提供しません。これは、現在の操作の失敗を示さない次のような状況を反映している可能性があるためです。
    • 以前のシャドウ コピー作成の失敗
    • 初期のバックアップまたは復元操作でのエラー
    • 現在イベントを処理している応答しないライター

したがって、開発者は、要求元以外のプロセスから返されるライターの状況に依存したり、IVssBackupComponents インターフェイスの 1 つのインスタンスの進行状況を別のもの (場合によっては別のスレッド) で監視したりしないでください。

ライターのライター メタデータ ドキュメントを調べる必要があるバックアップ オペレーションの場合、IVssBackupComponents::GatherWriterMetdata によって発生した Identify イベントの生成と処理に続く、IVssBackupComponents::GatherWriterStatus および IVssBackupComponents::GetWriterStatus の要求元による呼び出しは必要ないことに注意してください。

IVssBackupComponents::GetWriterStatus は、ライターの Identify イベント ハンドラー、CVssWriter::OnIdentify によってメタデータが VSS に提供された (そして、IVssBackupComponents::GetWriterMetadataCountIVssBackupComponents::GetWriterMetadata によって要求元に返された) ライターの状態のみを報告します。

ライターによる CVssWriter::OnIdentify の実装が失敗した場合、そのライターのメタデータは VSS に提供されるライター メタデータ ドキュメントのリストには含まれません。状態情報は利用できなくなり、呼び出しは冗長になります。

復元操作の場合、要求元が実行中のライターのライター メタデータ ドキュメントを調べる必要がない場合、IVssBackupComponents::GatherWriterStatusIVssBackupComponents::GetWriterStatus を呼び出すことは、どのライターが実行されているかを判断するためのより効率的な方法である可能性があります。