rpcErrorStartEnumeration 函数 (rpcasync.h)
RpcErrorStartEnumeration 函数开始枚举扩展错误信息。
语法
RPC_STATUS RpcErrorStartEnumeration(
RPC_ERROR_ENUM_HANDLE *EnumHandle
);
parameters
EnumHandle
指向枚举句柄的指针,采用 RPC_ERROR_ENUM_HANDLE 结构的形式。 结构必须由调用方分配,在操作完成之前无法释放。 输入时会忽略所有成员。
返回值
成功完成将返回RPC_S_OK。
如果线程上没有扩展错误信息,则返回RPC_S_ENTRY_NOT_FOUND。 如果枚举正在进行中,则从头开始启动第二个枚举。
注意 有关有效错误代码的列表,请参阅 RPC 返回值。
注解
RpcErrorStartEnumeration 函数调用应在返回错误的调用之后立即进行。 否则,后续调用可能会覆盖扩展错误信息。 必须使用 RpcErrorEndEnumeration 函数释放枚举句柄。
调用 RpcErrorStartEnumeration 后,可以安全地从其他线程使用枚举句柄。 RpcErrorStartEnumeration 函数接受扩展错误信息的快照,返回的枚举句柄对快照进行操作。 但是,枚举函数不会通过 RPC 在线程之间同步,因此调用方负责执行此操作。 对 RpcErrorStartEnumeration 的后续调用将开始一个新的枚举,并且不会为相同的扩展错误信息创建第二个枚举。
如果没有足够的内存来开始枚举,RpcErrorStartEnumeration 函数可能会失败。 枚举句柄只能传递给 RpcError* 函数,不能与其他函数(如 DuplicateHandle)一起使用。
在一个枚举上推进枚举指针对独立启动的枚举没有影响。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | rpcasync.h (包括 Rpc.h) |
Library | Rpcrt4.lib |
DLL | Rpcrt4.dll |