次の方法で共有


作家

ライター は、永続的な情報をディスク上のファイルに格納し、シャドウ コピー インターフェイスを使用して要求者にこれらのファイルの名前と場所を提供するアプリケーションまたはサービスです。

バックアップ操作中に、ライターはデータが静止し、安定していることを確認します。シャドウ コピーとバックアップに適しています。 ライターは、可能な場合はファイルのロックを解除し、必要に応じて別の場所を示すことで、復元と共同作業します。

VSS バックアップ操作中にライターが存在しない場合でも、シャドウ コピーを作成できます。 この場合、シャドウ コピーされたボリューム上のすべてのデータは、クラッシュ整合性状態になります。

ライターの状態

ライターは、XML ベースのメタデータ オブジェクト 、ライター メタデータ ドキュメントで状態を維持します。

このライター メタデータは、バックアップおよび復元するデータのパス、ファイル指定、再帰フラグファイル セットを含む唯一のデータ構造です。

ライター メタデータ ドキュメントは、ライターのファイル セットをグループまたは コンポーネントに整理します。 ライターによって管理される他のコンポーネントに対するバックアップおよび復元操作中のこれらのコンポーネントの関係については、コンポーネントのバックアップ選択性、復元選択性、および 論理パスによって記述されています。 (詳細については、「コンポーネント編成 の設定」および「選択性と論理パスの操作 」を参照してください)。

このドキュメントには、ファイルの復元やその他の問題を管理する追加情報も含まれています。

リクエスターは、バックアップまたは復元を処理するために、ライター メタデータを独自のバックアップ コンポーネント ドキュメントと組み合わせて必要とします。

バックアップ コンポーネント ドキュメントとは異なり、ライター メタデータ ドキュメントは読み取り専用構造と考える必要があります。 ライターが作成すると、ドキュメントは変更されません。

ライター イベントの処理

ライターの VSS 操作は、COM イベントを受信して開始されます。

イベントが存在しない場合、ライターは VSS 操作 (VSS のバックアップや復元など) を実行しません。 代わりに、データベース クエリへの応答、ユーザー データの管理、他のサービスの提供など、通常の作業を実行します。

複数の並列バックアップおよび復元セッションのエラー処理が正しく実行されるようにし、1 つのバックアップまたは復元セッションで別のバックアップまたは復元セッションが破損しないようにするには、次の操作を行う必要があります。

  • ライターのイベント ハンドラー (CSVsWriter::OnFreezeなど) が CVssWriterEx2::GetSessionIdCVssWriter::SetWriterFailure、または CVssWriterEx2::SetWriterFailureEx メソッドを呼び出す場合、 イベント ハンドラーは、イベント ハンドラーを呼び出したのと同じスレッドでメソッドを呼び出す必要があります。
  • OnFreeze などのイベント ハンドラーのライターの実装は、必要に応じて、各ワーカー スレッドが元のイベント ハンドラー スレッドに報告する必要なエラーをマーシャリングする限り、ワーカー スレッドに作業をオフロードできます。

識別イベントの処理

Identify イベントを除き、ライターが受信するイベントの種類と順序は、現在進行中の VSS 操作の種類によって一意に異なります。

Identify イベントでは、ライターが構成に関するシステム情報と、ライター メタデータ ドキュメントを介して管理するファイルを提供する必要があります。 Identify イベントは、システム クエリ、シャドウ コピー操作、バックアップ操作、復元操作など、ほぼすべての VSS 操作をサポートして生成されます。 そのため、CVssWriter::OnIdentifyの Identify イベント ハンドラーのライターの実装は、バックアップや復元などの別の VSS 操作の処理中を含め、いつでも Identify イベントを処理できる必要があります。 Identify イベントは、VSS 操作のライフ サイクルの一部と見なすべきではありません。ただし、その生成は、その操作が開始される前に必要になる可能性があります。

順序が正しくないイベントを受信するとその情報がリセットされるため、VSS 操作に関する状態情報が CSVsWriter::OnIdentifyで変更されないことが特に重要です。

バックアップイベントと復元イベント

バックアップと復元のどちらに参加しているかに応じて、ライターは最初の Identify イベントに加えて、2 から 7 つのイベントを受け取ります。

これらのイベントの処理は、(ライターの観点から) バックアップ操作または復元操作のライフ サイクルを構成します。

一般的なバックアップ操作 (VSS でのバックアップ処理の概要参照) では、ライターは (初期識別イベントに加えて) 次のイベントを処理します。

  • PrepareForBackup
  • PrepareForSnapshot
  • 凍る
  • 溶ける
  • PostSnapshot
  • BackupComplete
  • BackupShutdown

一般的な復元操作 (「VSSでの復元処理の概要」を参照) では、ライターは次のイベントを処理します。

  • PreRestore
  • PostRestore