GetOwnerModuleFromUdpEntry 函数 (iphlpapi.h)
GetOwnerModuleFromUdpEntry 函数检索有关在 MIB 表行中为特定 IPv4 UDP 终结点发出上下文绑定的模块的数据。
语法
IPHLPAPI_DLL_LINKAGE DWORD GetOwnerModuleFromUdpEntry(
[in] PMIB_UDPROW_OWNER_MODULE pUdpEntry,
[in] TCPIP_OWNER_MODULE_INFO_CLASS Class,
[out] PVOID pBuffer,
[in, out] PDWORD pdwSize
);
参数
[in] pUdpEntry
指向 MIB_UDPROW_OWNER_MODULE 结构的指针,该结构包含用于获取所有者模块的 IPv4 UDP 终结点条目。
[in] Class
一个TCPIP_OWNER_MODULE_INFO_CLASS枚举值,该值指示要获取的有关所有者模块的数据的类型。
[out] pBuffer
包含具有所有者模块数据的 TCPIP_OWNER_MODULE_BASIC_INFO 结构的缓冲区。 在此缓冲区中返回的数据类型由 Class 参数的值指示。
将 Class 设置为相应的值时,以下结构用于 Buffer 中的数据。
类 枚举值 | 缓冲区 数据格式 |
---|---|
TCPIP_OWNER_MODULE_BASIC_INFO | TCPIP_OWNER_MODULE_BASIC_INFO |
[in, out] pdwSize
缓冲区中返回的结构的估计大小(以字节为单位)。 如果此值设置得太小, 则此 函数返回ERROR_INSUFFICIENT_BUFFER,并且此字段将包含正确的结构大小。
返回值
如果调用成功,则返回 NO_ERROR 的值。 否则,将返回以下错误。
返回代码 | 说明 |
---|---|
|
为表分配的空间不足。 表的大小在 pdwSize 参数中返回,并且必须在后续调用此函数时使用,才能成功检索表。 |
注解
Buffer 参数不仅包含具有指向特定数据的指针的结构,例如,指向包含所有者模块名称和路径的零终止字符串的指针,还包含实际数据本身;,即名称和路径字符串。 因此,在计算缓冲区大小时,请确保为结构以及结构成员指向的数据提供足够的空间。
最佳做法是将 UDP 表条目解析为所有者模块。 在少数情况下, TCPIP_OWNER_MODULE_BASIC_INFO 结构中返回的所有者模块名称可以是进程名称(如“svchost.exe”、服务名称(如“RPC”)或组件名称(例如“timer.dll”。
对于在 Windows Vista 或更高版本上运行的计算机,访问 TCPIP_OWNER_MODULE_BASIC_INFO 结构的 pModuleName 和 pModulePath 成员受用户帐户控制 (UAC) 的限制。 如果调用此函数的应用程序由作为管理员组成员(而非内置管理员)登录的用户执行,则此调用将成功,但对这些成员的访问将返回空字符串,除非应用程序已在清单文件中标记为 requestedExecutionLevel 设置为 requireAdministrator。 如果 Windows Vista 或更高版本上的应用程序缺少此清单文件,则作为管理员组成员(而非内置管理员)登录的用户必须在增强的 shell 中执行应用程序,因为内置管理员 (RunAs 管理员) 才能访问受保护的 pModuleName 和 pModulePath 成员。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista、Windows XP 和 SP2 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008、Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | iphlpapi.h |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |