次の方法で共有


CVssWriter::OnPostSnapshot メソッド (vswriter.h)

OnPostSnapshot メソッドは、PostSnapshot イベントの後にライターによって呼び出されます。

OnPostSnapshot は仮想メソッドです。 これは 、CVssWriter 基本クラスによって実装されますが、派生クラスによってオーバーライドできます。

構文

bool OnPostSnapshot(
  [in] IVssWriterComponents *pComponent
);

パラメーター

[in] pComponent

ライターのコンポーネント情報へのアクセスをメソッドに提供するために VSS によって渡される IVssWriterComponents オブジェクトへのポインター。 リクエスターがコンポーネントをサポートしていない場合 ( CSVsWriter::AreComponentsSelectedfalse を返す場合)、このパラメーターの値は NULL になる可能性があります。

戻り値

基底クラスによって実装されているように、 OnPostSnapshot は常に true を返します。

致命的なエラーが発生した場合を除き、このメソッドの他の実装は true を返す必要があります。 致命的なエラーが発生した場合、メソッドは CSVsWriter::SetWriterFailure メソッドを呼び出して、 false を返す前にエラーの説明を提供する必要があります。 致命的でないエラーが発生した場合でも、メソッドは SetWriterFailure を 呼び出しますが 、true を返します。 一時的な問題が原因でエラーが発生した場合、メソッドは SetWriterFailure の呼び出しでVSS_E_WRITERERROR_RETRYABLEを指定する必要があります。

エラーが発生した場合、メソッドはイベント ログにイベントを書き込み、エラーの正確な理由を報告する必要があります。

解説

CVssWriter 基本クラスによるこのメソッドの既定の実装は、他の操作を実行せずに true を返します。

CVssWriter::OnPostSnapshot は、通常、ライターによるバックアップ コンポーネントメタデータへの最終的な更新を処理し、一時ファイルの削除などクリーンするために使用されます。

増分バックアップまたは差分バックアップが実行されている場合、ライターは IVssComponent::GetPreviousBackupStampIVssComponent::SetBackupStamp を呼び出す可能性があります。 詳細については、「 複合ストアのバックアップにおけるライター ロール」を参照してください。 この時点で呼び出すことができるもう 1 つのメソッドは、 IVssComponent::AddDifferencedFilesByLastModifyTime です

ライターを通常の操作に戻すために必要な作業のほとんどは (CSVSWriter::OnPrepareSnapshotCVssWriter::OnFreeze のアクションを元に戻す) は、通常、OnPostSnapshot ではなく、CVssWriter::OnThaw で実行されます。

ライターは、このメソッドまたは他の CSVSWriter(Ex)::OnXxx コールバック メソッドから例外をスローしないでください。

シャドウ コピーに VSS_VOLSNAP_ATTR_AUTORECOVER フラグがコンテキストに設定されている場合、ライターは必要な回復 (不完全なトランザクションのロールバックなど) を実行して、コンポーネントがデータ マイニングの読み取り専用コピー (ライブ サーバーへの負荷を追加せずに) または復元の目的で使用できるようにする必要があります (たとえば、選択したアイテムをデータベースから復元するため)。

ボリュームのシャドウ コピーのボリューム名を取得するには、次の手順を実行します。

  1. シャドウ コピー セット内のボリュームの数を照会するには、 CVssWriter::GetCurrentVolumeCount メソッドを呼び出します。
  2. シャドウ コピー セット内のボリュームの元の名前を列挙するには、 CVssWriter::GetCurrentVolumeArray メソッドを呼び出します。
  3. シャドウ コピー ボリュームの名前を取得するには、 CVssWriter::GetSnapshotDeviceName を呼び出します。
このメソッドが CVssWriterEx2::GetSessionIdCVssWriter::SetWriterFailure、または CVssWriterEx2::SetWriterFailureEx メソッドを呼び出す場合は、このメソッドを呼び出したのと同じスレッドで呼び出す必要があります。 詳細については、「 ライター イベント処理」を参照してください。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー vswriter.h (Vss.h、VsWriter.h を含む)
Library VssApi.lib

関連項目

CSVSWriter

CVssWriter::GetSnapshotDeviceName

CSVsWriter::OnPreRestore

CSVsWriter::OnPrepareBackup

CSVsWriter::SetWriterFailure

CvssWriter::OnThaw

IVssWriterComponents