次の方法で共有


IVssProviderCreateSnapshotSet::CommitSnapshots メソッド (vsprov.h)

CommitSnapshots メソッドは、このプロバイダー内のすべての LUN をすばやくコミットします。

構文

HRESULT CommitSnapshots(
  [in] VSS_ID SnapshotSetId
);

パラメーター

[in] SnapshotSetId

シャドウ コピー セットを識別する VSS_ID

戻り値

リターン コード/値 Description
S_OK
0x000000000L
操作が正常に完了しました。
E_OUTOFMEMORY
0x8007000EL
メモリ不足またはその他のシステム リソース。
E_INVALIDARG
0x80070057L
パラメーター値の 1 つが無効です。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
SnapshotSetId パラメーターは、見つからなかったオブジェクトを参照します。
VSS_E_PROVIDER_VETO
0x80042306L
予期しないプロバイダー エラーが発生しました。 プロバイダーは、このエラーの詳細をアプリケーション イベント ログに記録する必要があります。
 

他の値が返された場合、VSS はイベント ログにイベントを書き込み、エラーを VSS_E_UNEXPECTED_PROVIDER_ERRORに変換します。

注釈

このメソッドは、シャドウ コピーを取得する必要がある定義された時刻に呼び出されます。 このシャドウ コピー セット内の準備された LUN ごとに、プロバイダーは、ポイントインタイム LUN の内容を保持するために必要な作業を実行します。 このメソッドの実行中は、アプリケーションと I/O サブシステムの両方が主に静止しています。 プロバイダーは、このメソッドに費やされる時間を最小限に抑える必要があります。 一般的なルールとして、このメソッドは完了するまでに 1 秒未満かかる必要があります。 このメソッドは [フラッシュと保留] ウィンドウの間に呼び出され、リリースが 10 秒以内に受信されなかった場合、VSS カーネル サポートは Flush と Hold を取り消します。これにより、VSS はシャドウ コピーの作成プロセスに失敗します。 各プロバイダーがこの呼び出しを完了するのに 1 秒または 2 秒以上かかる場合、シャドウ コピーの作成全体が失敗する可能性が高くなります。

I/O システムは静止しているため、このメソッドによる I/O のデバッグやトレース、このメソッドからの呼び出しなど、システムのデッドロックが発生する可能性があるため、プロバイダーは I/O を開始しないように注意する必要があります。 メモリ マップされたファイルとページング I/O は、現時点では固定されません。

I/O システムは、このメソッドの実行中にのみ静止することに注意してください。 最後のプロバイダーの CommitSnapshots メソッドが返された直後に、VSS サービスはソース LUN に対するすべての保留中の書き込みを解放します。 プロバイダーがソースとシャドウ コピー LUN の同期を実行する場合は、プロバイダーの CommitSnapshots メソッドが返される前に、この同期を完了する必要があります。非同期に実行することはできません。

要件

要件
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー vsprov.h

こちらもご覧ください

IVssProviderCreateSnapshotSet