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


Функция GetIpForwardEntry2

Функция GetIpForwardEntry2 извлекает сведения для записи IP-маршрута на локальном компьютере.

Синтаксис

NETIOAPI_API GetIpForwardEntry2(
  _Inout_ PMIB_IPFORWARD_ROW2 Row
);

Параметры

  • Строка [вход, выход]
    Указатель на запись структуры MIB_IPFORWARD_ROW2 для записи IP-маршрута. При успешном возвращении эта структура обновляется со свойствами для записи IP-маршрута.

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

GetIpForwardEntry2 возвращает STATUS_SUCCESS, если функция выполнена успешно.

Если функция завершается ошибкой, GetIpForwardEntry2 возвращает один из следующих кодов ошибок:

Код возврата Описание
STATUS_INVALID_PARAMETER

В функцию передан недопустимый параметр. Эта ошибка возвращается в одной из следующих ситуаций:

  • В параметре Row передается указатель NULL.

  • Не указан элемент DestinationPrefixструктуры MIB_IPFORWARD_ROW2 , на которую указывает параметр Row .

  • Не указан элемент NextHop структуры MIB_IPFORWARD_ROW2.

  • Элементы InterfaceLuid и InterfaceIndex структуры MIB_IPFORWARD_ROW2 не указаны.

  • Элемент PreferredLifetime структуры MIB_IPFORWARD_ROW2 больше, чем элемент ValidLifetime .

  • Элемент SitePrefixLength структуры MIB_IPFORWARD_ROW2 больше длины префикса, указанной элементом DestinationPrefix .

STATUS_NOT_FOUND

Не удалось найти указанный интерфейс. Эта ошибка возвращается, если функции не удается найти сетевой интерфейс, указанный элементом InterfaceLuid или InterfaceIndex структуры MIB_IPFORWARD_ROW2, на которую указывает параметр Row .

STATUS_NOT_SUPPORTED

Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере не расположен стек IPv4 и AF_INET был указан в семействе адресов в элементе DestinationPrefix структуры MIB_IPFORWARD_ROW2, на которую указывает параметр Row , или если на локальном компьютере не расположен стек IPv6 и AF_INET6 был указан для семейства адресов в элементе DestinationPrefix .

Другое

Используйте функцию FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки.

Комментарии

Функция GetIpForwardEntry2 используется для получения записи структуры MIB_IPFORWARD_ROW2 .

При входе драйвер должен инициализировать следующие элементы структуры MIB_IPFORWARD_ROW2, на которую указывает параметр Row .

  • DestinationPrefix
    Задайте допустимый префикс И семейство адресов IPv4 или IPv6.

  • NextHop
    Задайте допустимый IPv4- или IPv6-адрес и семейство.

  • InterfaceLuid или InterfaceIndex
    Эти элементы используются в порядке, указанном ранее. Таким образом, если указан InterfaceLuid , этот член используется для определения интерфейса. Если для элемента InterfaceLuid не задано значение (значение этого элемента равно нулю), для определения интерфейса будет использоваться элемент InterfaceIndex .

После успешного вызова GetIpForwardEntry2 извлекает другие свойства для записи IP-маршрута и заполняет структуру MIB_IPFORWARD_ROW2, на которую указывает параметр Row .

Смещение метрики маршрута, указанное в элементе Metric MIB_IPFORWARD_ROW2 структуры, на которую указывает параметр Row , представляет только часть полной метрики маршрута. Полная метрика представляет собой сочетание этой метрики маршрута, добавленной в метрику интерфейса, указанную в элементе Metric MIB_IPINTERFACE_ROW структуры связанного интерфейса. Драйвер может получить метрику интерфейса, вызвав функцию GetIpInterfaceEntry .

Драйвер может вызвать функцию GetIpForwardTable2 для перечисления записей IP-маршрутов на локальном компьютере.

Требования

Целевая платформа

Универсальное

Версия

Доступно в Windows Vista и более поздних версиях операционных систем Windows.

Заголовок

Netioapi.h (включая Netioapi.h)

Библиотека

Netio.lib

IRQL

< DISPATCH_LEVEL

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

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2