次の方法で共有


IVssCreateWriterMetadata::SetRestoreMethod メソッド (vswriter.h)

SetRestoreMethod メソッドは、ライターのデータを復元する方法を示します。

構文

HRESULT SetRestoreMethod(
  [in] VSS_RESTOREMETHOD_ENUM method,
  [in] LPCWSTR                wszService,
  [in] LPCWSTR                wszUserProcedure,
  [in] VSS_WRITERRESTORE_ENUM writerRestore,
  [in] bool                   bRebootRequired
);

パラメーター

[in] method

VSS_RESTOREMETHOD_ENUM 復元操作で使用されるメソッドを指定する値です。

[in] wszService

メソッドの値がVSS_RME_STOP_RESTORE_STARTまたはVSS_RME_RESTORE_STOP_STARTの場合、復元操作の前に停止してから復元操作が行われた後に開始する必要があるサービスの名前を含むワイド文字列へのポインター。

メソッドの値がVSS_RME_STOP_RESTORE_STARTまたはVSS_RME_RESTORE_STOP_STARTされていない場合、この引数は使用されず、NULL に設定する必要があります。

[in] wszUserProcedure

将来利用するために予約されています。 このパラメーターの値は常に NULL に設定する必要があります。

[in] writerRestore

ライターが データの復元に関与するかどうかを指定する値をVSS_WRITERRESTORE_ENUMします。

高速ライターでは、このパラメーターを VSS_WRE_NEVER に設定する必要があります。

[in] bRebootRequired

復元操作の完了後に再起動が必要かどうかを示すブール値。

戻り値

このメソッドの有効なリターン コードを次に示します。

説明
S_OK
0x00000000L
操作に成功しました。
E_INVALIDARG
0x80070057L
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
0x8007000EL
呼び出し元がメモリやその他のシステム リソースを使い切れている。
VSS_E_INVALID_XML_DOCUMENT
0x80042311L
XML ドキュメントが無効です。 詳細については、イベント ログを確認してください。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
VSS_E_NOT_SUPPORTED
0x8004232FL
呼び出し元は、高速ライターでサポートされていない VSS_WRITERRESTORE_ENUM 値を指定しました。
VSS_E_UNEXPECTED
予期しないエラー。 エラー コードは、エラー ログ ファイルに記録されます。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は、Windows Server 2008 R2 と Windows 7 まではサポートされません。 代わりに E_UNEXPECTED が使用されます。

解説

ライターには、1 つの復元方法が定義されています。 restore メソッドがオーバーライドされない場合、ライターのすべてのコンポーネントは同じメソッドを使用して復元されます。

ライターは、通常、 PreRestore イベント (CVssWriter::OnPreRestore) の処理中に復元ターゲットを設定することで、コンポーネントごとに復元方法をオーバーライドします。

復元メソッドはライター全体で適用されるという事実にもかかわらず、メソッドはコンポーネントごとに実装されることに注意することが重要です。 たとえば、 method パラメーターで指定されたメソッドがVSS_RME_RESTORE_IF_CAN_REPLACEされている場合、エラーが発生せずにすべて置換できる場合、コンポーネント内のすべてのファイルが元の場所に復元されます。 それ以外の場合は、別の場所 (指定されている場合) に復元されます。

次のいずれかが当てはまる場合は、常にファイルを別の場所マッピングに復元する必要があります。

  • 復元方法 (バックアップ時に設定) がVSS_RME_RESTORE_TO_ALTERNATE_LOCATION。
  • その復元ターゲットが (復元時に) VSS_RT_ALTERNATEに設定されました。
いずれの場合も、有効な代替ロケーション・マッピングが定義されていない場合、これはライター・エラーを構成します。

次のいずれかが当てはまる場合は、ファイルを別の場所マッピングに復元できます。

  • 復元方法はVSS_RME_RESTORE_IF_NOT_THEREであり、ファイルのバージョンは既にディスク上に存在します。
  • 復元方法がVSS_RME_RESTORE_IF_CAN_REPLACEされ、ファイルのバージョンがディスク上に存在し、置き換えることはできません。
ここでも、有効な代替場所マッピングが定義されていない場合、これはライター エラーを構成します。

代替の場所マッピングは復元操作中にのみ使用され、バックアップ操作中にのみ使用される代替パスと混同しないでください。

復元方法の詳細については、「 VSS 復元方法の設定」を参照してください。

restore メソッドがVSS_RME_STOP_RESTORE_STARTまたはVSS_RME_RESTORE_STOP_START場合は、 wszService 引数としてサービスの正しい名前を指定する必要があります。 復元操作中のサービスの停止と再起動にライターが参加する方法の詳細については、「 Requesters による復元のためのサービスの停止」を参照してください。

要件

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

関連項目

CVssWriter::OnPostRestore

CVssWriter::OnPreRestore

IVssCreateWriterMetadata

IVssExamineWriterMetadata::GetRestoreMethod