rpcErrorGetNextRecord 函数 (rpcasync.h)

RpcErrorGetNextRecord 函数检索枚举句柄的下一个扩展错误信息记录。

语法

RPC_STATUS RpcErrorGetNextRecord(
  [in]  RPC_ERROR_ENUM_HANDLE   *EnumHandle,
  [in]  BOOL                    CopyStrings,
  [out] RPC_EXTENDED_ERROR_INFO *ErrorInfo
);

参数

[in] EnumHandle

指向枚举句柄的指针,采用 RPC_ERROR_ENUM_HANDLE 结构的形式。 结构必须由调用方分配,在操作完成之前无法释放。 输入时忽略所有成员。

[in] CopyStrings

指定是否将 ErrorInfo 中的字符串字段复制到默认系统堆,此时这些缓冲区的所有权将转移到调用方。

TRUE 指示字符串要复制到系统堆。

FALSE 指示 ErrorInfo 中的字符串指向内部 RPC 数据结构;调用方无法释放或写入它们,并且一旦调用 RpcErrorEndEnumeration 函数,它们就会失效。

[out] ErrorInfo

指向 RPC_EXTENDED_ERROR_INFO 结构的指针。 请参阅“备注”。

返回值

如果 CopyStrings 为 false,则函数调用不能失败,除非其参数无效。 检索到最后一条扩展错误记录时, RpcErrorGetNextRecord 返回RPC_S_OK。 任何后续调用都返回RPC_S_ENTRY_NOT_FOUND。

出现任何错误时,枚举位置不会提前。

注意 有关有效错误代码的列表,请参阅 RPC 返回值
 

注解

输入时,必须在 ErrorInfo 中设置以下字段:

  • 版本 必须设置为RPC_EEINFO_VERSION。
  • NumberOfParameters 必须设置为介于零和 MaxNumberOfEEInfoParams 之间的值。 调用方可以自由地为任意数量的参数提供空间。 如果调用方提供的参数数小于扩展错误记录中的参数数,则返回RPC_S_BUFFER_TOO_SMALL。
  • 标志 必须为零,或者必须指定 EEInfoUseFileTime 。 如果 Flags 为零,则使用 u union 的 SystemTime 成员。 如果指定 了 EEInfoUseFileTime ,则使用 u union 的 FileTime 成员。
输入时将忽略 ErrorInfo 的其他字段。

输出后, ErrorInfo 中的字段填充如下:

  • 版本 保持不变。
  • 如果记录中没有计算机名称,则 ComputerNameNULL;如果扩展错误信息记录中确实存在计算机名称,则为 Unicode 字符串。 如果 为 NULL,则可以假定具有计算机名称的最后一条记录,但是,由于内存不足,计算机名可能已删除。 ComputerName 是一个非限定的 DNS 名称。
  • ProcessID 是记录的来源进程的 PID。
  • SystemTimeFileTime 是为生成记录的计算机生成记录的时间,以 UCT 表示。 FileTimeSystemTime 是否有效,具体取决于是否使用 EEInfoUseFileTime
  • GeneratingComponent 是生成组件的代码。
  • Status 是记录的状态代码。
  • DetectionLocation 是检测位置的代码。
  • 标志 指定是否缺少记录。 如果在当前记录丢失后缺少一条或多条记录,则设置 EEInfoNextRecordsMissing 。 如果当前记录之前缺少一条或多条记录,则设置 EEInfoPreviousRecordsMissing
  • NumberOfParameters 指定参数的真实数目。 如果调用方指定的输入参数空间多于记录中的参数数,则此字段包含使用的参数数。
  • 参数是实际参数,作为具有 NumberOfParameters 结构的RPC_EE_INFO_PARAM结构的数组提供。

要求

要求
最低受支持的客户端 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

RpcErrorEndEnumeration

RpcErrorStartEnumeration