Функция GetIpForwardTable2 (netioapi.h)
Функция GetIpForwardTable2 извлекает записи IP-маршрута на локальном компьютере.
Синтаксис
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpForwardTable2(
[in] ADDRESS_FAMILY Family,
[out] PMIB_IPFORWARD_TABLE2 *Table
);
Параметры
[in] Family
Извлекаемая семья адресов.
Возможные значения для семейства адресов перечислены в файле заголовка Winsock2.h . Обратите внимание, что значения для семейства адресов AF_ и констант семейства PF_ протоколов идентичны (например, AF_INET и PF_INET), поэтому можно использовать либо константу.
На Windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и возможные значения для этого элемента определяются в файле заголовка Ws2def.h. Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Winsock2.h и никогда не должен использоваться напрямую.
В настоящее время поддерживаются значения AF_INET, AF_INET6 и AF_UNSPEC.
[out] Table
Указатель на структуру MIB_IPFORWARD_TABLE2 , содержащую таблицу записей IP-маршрутов на локальном компьютере.
Возвращаемое значение
Если функция выполняется успешно, возвращаемое значение будет NO_ERROR.
Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре Table передается указатель NULL или параметр Family не указан как AF_INET, AF_INET6 или AF_UNSPEC. |
|
Недостаточно ресурсов памяти для завершения операции. |
|
Записи IP-маршрута, указанные в параметре Family , не найдены. |
|
Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере нет стека IPv4 и AF_INET был указан в параметре Family . Эта ошибка также возвращается, если на локальном компьютере нет стека IPv6 и AF_INET6 был указан в параметре Family . Эта ошибка также возвращается в версиях Windows, в которых эта функция не поддерживается. |
|
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки. |
Комментарии
Функция GetIpForwardTable2 определена в Windows Vista и более поздних версиях.
The
Функция GetIpForwardTable2 перечисляет записи IP-маршрута в локальной системе и возвращает эти сведения в MIB_IPFORWARD_TABLE2 структуре.
Записи IP-маршрута возвращаются в структуре MIB_IPFORWARD_TABLE2 в буфере, на который указывает параметр Table . Структура MIB_IPFORWARD_TABLE2 содержит число записей IP-маршрутов и массив MIB_IPFORWARD_ROW2 структур для каждой записи IP-маршрута. Если возвращаемые структуры больше не требуются, освободите память, вызвав FreeMibTable.
Параметр Family должен быть инициализирован AF_INET, AF_INET6 или AF_UNSPEC.
Обратите внимание, что возвращаемая MIB_IPFORWARD_TABLE2 структура, на которую указывает параметр Table, может содержать заполнение для выравнивания между элементом NumEntries и первой записью массива MIB_IPFORWARD_ROW2 в элементе Tableструктуры MIB_IPFORWARD_TABLE2 . Между MIB_IPFORWARD_ROW2 записями массива также может присутствовать заполнение для выравнивания. Любой доступ к записи MIB_IPFORWARD_ROW2 массива должен предполагать наличие заполнения.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | netioapi.h (включая Iphlpapi.h) |
Библиотека | Iphlpapi.lib |
DLL | Iphlpapi.dll |