getBestInterfaceEx 函数 (iphlpapi.h)

GetBestInterfaceEx 函数检索具有指定 IPv4 或 IPv6 地址的最佳路由的接口的索引。

语法

IPHLPAPI_DLL_LINKAGE DWORD GetBestInterfaceEx(
  [in]  sockaddr *pDestAddr,
  [out] PDWORD   pdwBestIfIndex
);

parameters

[in] pDestAddr

要检索具有最佳路由的接口的目标 IPv6 或 IPv4 地址,采用 sockaddr 结构的形式。

[out] pdwBestIfIndex

指向接口索引的指针,该接口具有到 pDestAddr 指定的 IPv6 或 IPv4 地址的最佳路由。

返回值

如果函数成功,则返回值NO_ERROR。

如果函数失败,则返回值为以下错误代码之一。

返回代码 说明
ERROR_CAN_NOT_COMPLETE
操作无法完成。
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。 如果在 pdwBestIfIndex 参数中传递 NULL 指针,或者 pDestAddr pdwBestIfIndex 参数指向无法访问的内存,则返回此错误。 如果 pdwBestIfIndex 参数指向无法写入的内存,也可能会返回此错误。
ERROR_NOT_SUPPORTED
不支持该请求。 如果本地计算机上没有 IPv4 堆栈,并且 pDestAddr 参数中指定了 IPv4 地址,或者本地计算机上没有 IPv6 堆栈,并且 pDestAddr 参数中指定了 IPv6 地址,则返回此错误。
其他
使用 FormatMessage 函数获取返回错误的消息字符串。

注解

GetBestInterfaceEx 函数与 GetBestInterface 函数的不同之处在于,它可以与 IPv4 或 IPv6 地址一起使用。

pDestAddr 参数指向的 sockaddr 结构的 Family 成员必须设置为以下值之一:AF_INETAF_INET6

在 Windows Vista 及更高版本上,ip 帮助程序在内部将 pdwBestIfIndex 参数视为指向 NET_IFINDEX数据类型的 指针。

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 iphlpapi.h
Library Iphlpapi.lib
DLL Iphlpapi.dll

另请参阅

GetBestInterface

IP 帮助程序函数参考

IP 帮助程序起始页

MIB_BEST_IF

sockaddr