次の方法で共有


IVssBackupComponentsEx3::GetWriterStatusEx メソッド (vsbackup.h)

指定したライターの拡張状態情報を返します。

構文

HRESULT GetWriterStatusEx(
  [in]            UINT             iWriter,
  [out]           VSS_ID           *pidInstance,
  [out]           VSS_ID           *pidWriter,
  [out]           BSTR             *pbstrWriter,
  [out]           VSS_WRITER_STATE *pnStatus,
  [out]           HRESULT          *phrFailureWriter,
  [out, optional] HRESULT          *phrApplication,
  [out, optional] BSTR             *pbstrApplicationMessage
);

パラメーター

[in] iWriter

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

[out] pidInstance

ライターのインスタンス識別子を受け取る呼び出し元によって割り当てられた変数のアドレス。 このパラメーターは必須であり、 NULL にすることはできません。

[out] pidWriter

ライター クラスの識別子を受け取る呼び出し元によって割り当てられた変数のアドレス。 このパラメーターは必須であり、 NULL にすることはできません。

[out] pbstrWriter

指定したライターの名前を含む文字列を受け取る呼び出し元によって割り当てられた変数のアドレス。 このパラメーターは必須であり、 NULL にすることはできません。

[out] pnStatus

VSS_WRITER_STATE列挙値を受け取る呼び出し元によって割り当てられた変数 アドレス。 このパラメーターは必須であり、 NULL にすることはできません。

[out] phrFailureWriter

ライターが CVssWriterEx2::SetWriterFailureEx メソッドの hrWriter パラメーターに対して返した HRESULT エラー コードを受け取る呼び出し元によって割り当てられた変数のアドレス。

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

意味
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 つ以上のライターでは使用できません。 ライターが、使用可能なバックアップおよび復元セッションの最大数に達している可能性があります。
VSS_E_WRITERERROR_PARTIAL_FAILURE
ライターは、1 つ以上のコンポーネント レベルのエラーを報告しています。 エラーを取得するには、要求元で IVssComponentEx2::GetFailure メソッドを使用する必要があります。

[out, optional] phrApplication

ライターが CVssWriterEx2::SetWriterFailureEx メソッドの hrApplication パラメーターに渡したリターン コードを受け取る呼び出し元によって割り当てられた変数のアドレス。 このパラメーターは省略可能であり、 NULL にすることができます。

[out, optional] pbstrApplicationMessage

SetWriterFailureEx メソッドの wszApplicationMessage パラメーターにライターが渡したアプリケーション エラー メッセージを受け取る変数のアドレス。 このパラメーターは省略可能であり、 NULL にすることができます。

戻り値

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

意味
S_OK
0x000000000L
指定したライターの状態が正常に返されました。 ライターが成功したことを確認するには、 phrFailureWriter パラメーターの値を確認する必要があることに注意してください。 ライター エラー コードは、VsWriter.h および ライター エラーと Vetoes に記載されているものの中に含めることができます。
E_INVALIDARG
0x80070057L
pnStatuspidWriterpbstrWriter、または pidInstance パラメーターが NULL です
E_OUTOFMEMORY
0x8007000EL
呼び出し元がメモリ不足またはその他のシステム リソースです。
VSS_E_BAD_STATE
0x80042301L
バックアップ コンポーネント オブジェクトが初期化されていないか、復元操作中にこのメソッドが呼び出されたか、このメソッドが正しいシーケンス内で呼び出されていません。
VSS_E_OBJECT_NOT_FOUND
0x80042308L
iWriter パラメーターは、存在しないライターを指定します。

注釈

要求元は、非同期操作 IVssBackupComponents::GatherWriterStatus を呼び出し、完了するまで待ってから IVssBackupComponentsEx3::GetWriterStatusEx を呼び出す必要があります。

このメソッドがVSS_E_WRITERERROR_PARTIAL_FAILUREを返す場合、リクエスターは IVssComponentEx2::GetFailure メソッドを使用してコンポーネント レベルのエラーを取得する必要があります。

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

要件

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

こちらもご覧ください

CSVsWriterEx2::SetWriterFailureEx

IVssBackupComponents::GetWriterStatus

IVssBackupComponentsEx3