次の方法で共有


復元のクリーンアップと終了の概要

復元後、ライターは操作の状態をチェックして、復元されたデータを利用してエラーを処理できるようにします。 要求者は、このアクティビティの完了を待機する必要があります。 詳細については、「 VSS での復元処理の概要」を参照してください。

次の表は、復元操作が行われた後に必要なアクションとイベントのシーケンスを示しています。

Requester アクション イベント ライター アクション
リクエスターは復元の終了を示します ( 「IVssBackupComponents::P ostRestore」を参照)。 PostRestore ライターは復元後のクリーンアップを実行し、非標準の場所に復元された復元エラーとファイルを処理します ( 「CVssWriter::OnPostRestoreIVssComponent」を参照)。
リクエスターはライターを待機して、IVssAsync を使用して PostRestore イベントを処理します。 ライターの状態も確認する必要があります ( IVssBackupComponents::GatherWriterStatusIVssBackupComponents::GetWriterStatus を参照)。 なし なし
リクエスターは 、IVssBackupComponents インターフェイスを 解放します。 なし なし

 

クリーンアップと終了中のリクエスター アクション

この時点で、要求者は、IVssBackupComponents::P ostRestore を呼び出して PostRestore イベントを生成することで、ファイルの復元アクティビティの終了を示します。

リクエスターのアクションはライターの待機に制限されます。これは、最終的なクリーンアップを実行して復元エラーを処理する必要がある場合があり、すべてのライターが PostRestore イベントの処理から戻った後に IVssBackupComponents インターフェイスを解放する必要があります。

クリーンアップと終了中のライター アクション

PostRestore イベントは、仮想メソッド CVssWriter::OnPostRestore によって処理されます。 既定の実装では、アクションを実行せずに 単に true を 返します。 ライターが復元後の状況をより詳細に制御する必要がある場合は、このメソッドをオーバーライドできます。

ライターが CSVsWriter::OnPostRestore で実行できる通常のクリーンアップ (一時ファイルの削除など) に加えて、復元操作の成功または失敗を処理できます。

復元エラー、別の場所に復元されたファイル、および将来の復元の必要性を処理する方法は、ライターの裁量で完全に行われます。 一般的なアクションには、別の場所または新しい場所にあるファイルと現在使用中のファイルの比較、複数のファイルからのデータのマージ、新しいデータ ファイルに接続された新しいセッションの開始などがあります。 VSS には、コンポーネントごとにこれをサポートするための次のメカニズムが用意されています。

(既定以外の場所へのファイルの復元の詳細については、「 既定以外のバックアップと復元の場所」を参照してください)。

IVssComponent メソッドと同様に、特定のインスタンスによって返される情報は、バックアップ用に明示的に含まれるコンポーネントと、バックアップ サブコンポーネントに暗黙的に含まれるコンポーネントに適用されます。これには、IVssBackupComponents::AddRestoreSubcomponent を使用してリクエスターによって明示的に復元するために含まれるサブコンポーネントも含まれます (詳細については、「Selectability For Restore および Subcomponents の操作」を参照してください)。

ライターはバックアップ コンポーネント ドキュメントにアクセスする必要があるため、ライターの処理が完了するまで、要求元が IVssBackupComponents インターフェイスを解放しないことが重要です。