Поделиться через


Функция GetBestInterfaceEx (iphlpapi.h)

Функция GetBestInterfaceEx извлекает индекс интерфейса, который имеет наилучший маршрут к указанному IPv4- или IPv6-адресу.

Синтаксис

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

Параметры

[in] pDestAddr

Адрес назначения IPv6 или IPv4, для которого требуется получить интерфейс с оптимальным маршрутом в виде структуры sockaddr .

[out] pdwBestIfIndex

Указатель на индекс интерфейса с оптимальным маршрутом к адресу IPv6 или IPv4, указанному в параметре pDestAddr.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет 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.

Элементу Family структуры sockaddr, на которую указывает параметр pDestAddr, необходимо задать одно из следующих значений: AF_INET или AF_INET6.

В Windows Vista и более поздних версиях параметр pdwBestIfIndex обрабатывается внутренне вспомогательной службой IP как указатель на тип данных NET_IFINDEX .

Требования

   
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header iphlpapi.h
Библиотека Iphlpapi.lib
DLL Iphlpapi.dll

См. также раздел

GetBestInterface

Справочник по вспомогательным функциям IP

Начальная страница вспомогательного ip-адреса

MIB_BEST_IF

sockaddr