次の方法で共有


RpcErrorStartEnumeration 関数 (rpcasync.h)

RpcErrorStartEnumeration 関数は、拡張エラー情報の列挙を開始します。

構文

RPC_STATUS RpcErrorStartEnumeration(
  RPC_ERROR_ENUM_HANDLE *EnumHandle
);

パラメーター

EnumHandle

RPC_ERROR_ENUM_HANDLE構造体の形式の列挙ハンドルへのポインター。 構造体は呼び出し元によって割り当てられている必要があり、操作が完了するまで解放できません。 すべてのメンバーは入力時に無視されます。

戻り値

正常に完了すると、RPC_S_OKが返されます。

スレッドに拡張エラー情報がない場合は、RPC_S_ENTRY_NOT_FOUNDを返します。 列挙体が進行中の場合、2 つ目の列挙型の開始は最初から開始されます。

メモ 有効なエラー コードの一覧については、「 RPC 戻り値」を参照してください。
 

解説

RpcErrorStartEnumeration 関数の呼び出しは、エラーを返した呼び出しの直後に行う必要があります。 それ以外の場合、拡張エラー情報は後続の呼び出しによって上書きされる可能性があります。 列挙ハンドルは、RpcErrorEndEnumeration 関数を使用して解放する必要があります。

RpcErrorStartEnumeration が呼び出されると、別のスレッドの列挙ハンドルを使用しても安全です。 RpcErrorStartEnumeration 関数は拡張エラー情報のスナップショットを受け取り、返される列挙ハンドルはスナップショットに対して動作します。 ただし、列挙関数は RPC によってスレッド間で同期されないため、呼び出し元がこれを行う必要があります。 RpcErrorStartEnumeration の後続の呼び出しは新しい列挙を開始し、同じ拡張エラー情報の 2 つ目の列挙を作成しません。

列挙を開始するのに十分なメモリがない場合、RpcErrorStartEnumeration 関数が失敗する可能性があります。 列挙ハンドルは RpcError* 関数にのみ渡すことができます。 DuplicateHandle などの他の関数では使用できません。

列挙ポインターを 1 つの列挙体に進めることは、独立して開始された列挙には影響しません。

要件

   
サポートされている最小のクライアント Windows XP [デスクトップ アプリ | UWP アプリ]
サポートされている最小のサーバー Windows Server 2003 [デスクトップ アプリのみ | UWP アプリ]
対象プラットフォーム Windows
ヘッダー rpcasync.h (Rpc.h を含む)
Library Rpcrt4.lib
[DLL] Rpcrt4.dll

関連項目

拡張 RPC エラー情報の取得

RPC_EE_INFO_PARAM

RPC_ERROR_ENUM_HANDLE

RPC_EXTENDED_ERROR_INFO

RpcErrorAddRecord

RpcErrorClearInformation

RpcErrorEndEnumeration

RpcErrorGetNextRecord

RpcErrorGetNumberOfRecords

RpcErrorLoadErrorInfo

RpcErrorResetEnumeration

RpcErrorSaveErrorInfo