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。
如果函数失败,则返回值为以下错误代码之一。
返回代码 | 说明 |
---|---|
|
操作无法完成。 |
|
向该函数传递了无效参数。 如果在 pdwBestIfIndex 参数中传递 NULL 指针,或者 pDestAddr 或 pdwBestIfIndex 参数指向无法访问的内存,则返回此错误。 如果 pdwBestIfIndex 参数指向无法写入的内存,也可能会返回此错误。 |
|
不支持该请求。 如果本地计算机上没有 IPv4 堆栈,并且 pDestAddr 参数中指定了 IPv4 地址,或者本地计算机上没有 IPv6 堆栈,并且 pDestAddr 参数中指定了 IPv6 地址,则返回此错误。 |
|
使用 FormatMessage 函数获取返回错误的消息字符串。 |
注解
GetBestInterfaceEx 函数与 GetBestInterface 函数的不同之处在于,它可以与 IPv4 或 IPv6 地址一起使用。
pDestAddr 参数指向的 sockaddr 结构的 Family 成员必须设置为以下值之一:AF_INET 或 AF_INET6。
在 Windows Vista 及更高版本上,ip 帮助程序在内部将 pdwBestIfIndex 参数视为指向 NET_IFINDEX数据类型的 指针。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | iphlpapi.h |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |