次の方法で共有


IVssBackupComponents::GetWriterStatus メソッド (vsbackup.h)

GetWriterStatus メソッドは、指定したライターの状態を返します。

構文

HRESULT GetWriterStatus(
  [in]  UINT             iWriter,
  [out] VSS_ID           *pidInstance,
  [out] VSS_ID           *pidWriter,
  [out] BSTR             *pbstrWriter,
  [out] VSS_WRITER_STATE *pnStatus,
  [out] HRESULT          *phResultFailure
);

パラメーター

[in] iWriter

メタデータを取得するライターのインデックス。 このパラメーターの値は、0 から n から 1 までの整数です。 ここで、n は現在のシステム上のライターの合計数です。 n の値は、IVssBackupComponents::GetWriterStatusCount によって返されます。

[out] pidInstance

ライターのインスタンス識別子を受け取る呼び出し元によって割り当てられた変数のアドレス。

[out] pidWriter

ライター クラスの識別子を受け取る呼び出し元によって割り当てられた変数のアドレス。

[out] pbstrWriter

指定したライターの名前を含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。

[out] pnStatus

VSS_WRITER_STATE列挙値を受け取る呼び出し元によって割り当てられた変数 アドレス。

[out] phResultFailure

ライターによって返された HRESULT エラー コードを受け取る呼び出し元によって割り当てられた変数のアドレス。

pHrResultFailure でサポートされている値を次に示します。

意味
S_OK
ライターが成功しました。
VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT
シャドウ コピーには、アプリケーション コンポーネントを正しくバックアップするためにライターが必要とするボリュームのサブセットのみが含まれます。
VSS_E_WRITERERROR_OUTOFRESOURCES
ライターがメモリやその他のシステム リソースを使い果たしました。 このエラー コードを処理する推奨される方法は、10 分待ってから、操作を最大 3 回繰り返す方法です。
VSS_E_WRITERERROR_TIMEOUT
Freeze イベントと Thaw イベントの間にタイムアウトが発生したため、ライター操作が失敗しました。 このエラー コードを処理する推奨される方法は、10 分待ってから、操作を最大 3 回繰り返す方法です。
VSS_E_WRITERERROR_RETRYABLE
バックアップ、復元、またはシャドウ コピーの作成プロセス全体が再起動された場合に発生しない可能性が高いエラーが原因でライターが失敗しました。 このエラー コードを処理する推奨される方法は、10 分待ってから、操作を最大 3 回繰り返す方法です。
VSS_E_WRITERERROR_NONRETRYABLE
ライター操作は、別のシャドウ コピーが作成された場合に繰り返される可能性があるエラーが原因で失敗しました。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。
VSS_E_WRITER_NOT_RESPONDING
ライターが応答していません。
VSS_E_WRITER_STATUS_NOT_AVAILABLE
ライターの状態は、1 つ以上のライターでは使用できません。 ライターが、使用可能なバックアップおよび復元セッションの最大数に達している可能性があります。

Windows Vista、Windows Server 2003、Windows XP: この値はサポートされていません。

戻り値

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

意味
S_OK
指定したライターの状態が正常に返されました。 ライターが成功したことを確認するには、 pHrWriterFailure パラメーターの値を確認する必要があることに注意してください。 ライター エラー コードは、VsWriter.h および ライター エラーと Vetoes に記載されているものの中に含めることができます。
E_INVALIDARG
パラメーター値の 1 つが無効です。
E_OUTOFMEMORY
呼び出し元がメモリ不足またはその他のシステム リソースです。
VSS_E_BAD_STATE
バックアップ コンポーネント オブジェクトが初期化されていないか、復元操作中にこのメソッドが呼び出されたか、このメソッドが正しいシーケンス内で呼び出されていません。
VSS_E_OBJECT_NOT_FOUND
指定されたライターが存在しません。
VSS_E_UNEXPECTED
予期しないエラー。 エラー コードはエラー ログ ファイルに記録されます。 詳細については、「 VSS でのイベントとエラーの処理」を参照してください。

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

注釈

要求元は、非同期操作 IVssBackupComponents::GatherWriterStatus を呼び出し、 GetWriterStatus を呼び出す前に完了するまで待機する必要があります。

呼び出し元は、このメソッドによって返される状態情報へのアクセスを完了すると、pbstrWriter パラメーターによって保持されているメモリを解放するために SysFreeString を呼び出す必要があります。

pHrResultFailure パラメーターで返されるVSS_E_WRITERERROR_XXX 値は、ライターによって生成されます。 VSS_E_WRITER_NOT_RESPONDINGとVSS_E_WRITER_STATUS_NOT_AVAILABLEは VSS によって生成されます。

要件

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

こちらもご覧ください

IVssBackupComponents

IVssBackupComponents::GatherWriterStatus

IVssBackupComponents::GetWriterStatusCount