次の方法で共有


シャドウ コピー プロバイダーでのエラー処理

VSS では多数のシャドウ コピーを一度に存在できますが、IVssBackupComponents::StartSnapshotSetの呼び出しとIVssBackupComponents::D oSnapshotSetへの呼び出しからのリターンの間で、1 つのシャドウ コピー セットの作成を進行中にすることができます。

部分コミットなし

いずれかのプロバイダーがシャドウ コピー セット内の任意のボリュームまたは LUN でシャドウ コピーに失敗した場合、シャドウ コピー セット全体の作成は失敗します。 これは仕様です。 この設計により、部分的な障害セマンティクスに関連する動作の問題が簡略化され、セット内のすべてのシャドウ コピーで一貫したポイントインタイムが維持されます。

エラー状態の報告

プロバイダー エラーまたはエラー状態が発生した場合、プロバイダーはエラーをアプリケーション イベント ログに記録する必要があります。 これには、シャドウ コピー セットの作成またはインポート時のプロバイダー固有のエラーや、作成後の書き込み時のコピー シャドウ コピーのリソース割り当てエラーが含まれますが、これらに限定されません。 シャドウ コピー セット内のボリュームがフリーズ状態になっている間は、このログ記録を実行しないでください。

有効なプロバイダーの戻り値

次の表に、プロバイダー メソッドの有効なリターン コードとその意味を示します。

価値 形容
S_OK
メソッドが成功しました。
E_OUTOFMEMORY
プロバイダーがメモリやその他のシステム リソースを使い切った。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_ACCESSDENIED
特権のないクライアントがプロバイダーを呼び出そうとしました。
VSS_E_BAD_STATE
要求された操作をサポートするプロバイダーがないか、オブジェクトが正しい状態ではないため、オブジェクトに対して操作を実行できません。
VSS_E_OBJECT_NOT_FOUND
パラメーターは、見つからなかったオブジェクト (シャドウ コピー ID、シャドウ コピー セット ID、ボリュームなど) を参照します。
VSS_E_INSUFFICIENT_STORAGE
十分なディスク領域がないため、プロバイダーは操作を実行できません。
VSS_E_VOLUME_NOT_SUPPORTED
このコンピューター上のプロバイダーは、ボリュームで要求された操作をサポートしません。
VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER
プロバイダーはボリュームをサポートしていません。
VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED
プロバイダーがサポートできるシャドウ コピーの最大数に達しました。
VSS_E_PROVIDER_VETO
プロバイダーで、別の戻り値にマップされない内部ランタイム エラーが発生しました。 また、プロバイダーは、この問題を解決する方法に関する情報をユーザーに提供するイベントをアプリケーション イベント ログに書き込む必要があります。
VSS_E_CANNOT_REVERT_DISKID
1 つ以上のディスクの MBR 署名または GPT ID を要求された値に設定できませんでした。 詳細については、アプリケーション イベント ログを確認してください。

 

プロバイダーは、他のエラー コードを返そうとしないでください。

プロバイダーが予期しないエラー コード (たとえば、S_FALSEE_FAILE_UNEXPECTED、または E_ABORT) を返した場合、VSS は、プロバイダーと失敗したメソッドを示すイベント ログにイベントを書き込み、要求元に戻る前にエラーを VSS_E_UNEXPECTED_PROVIDER_ERROR に変換します。 これは、IVssProviderCreateSnapshotSet::AbortSnapshots または IVssProviderNotifications::OnUnloadからの戻り値には実行されません。