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


Функция GetIpForwardEntry2

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

Синтаксис

NETIOAPI_API GetIpForwardEntry2(
  _Inout_ PMIB_IPFORWARD_ROW2 Row
);

Параметры

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

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

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

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

Возвращаемый код Описание
STATUS_INVALID_PARAMETER

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

  • Указатель NULL передается в параметре строки.

  • Элемент DestinationPrefix структуры MIB_IPFORWARD_ROW2, к которому указывает параметр row, не указан.

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

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

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

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

STATUS_NOT_FOUND

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

STATUS_NOT_SUPPORTED

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

Другие

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

Замечания

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

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

  • НазначениеPrefix
    Задайте допустимый префикс и семейство адресов IPv4 или IPv6.

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

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

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

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

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

Требования

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

универсальные

Версия

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

Заголовок

Netioapi.h (include Netioapi.h)

Библиотека

Netio.lib

IRQL

< DISPATCH_LEVEL

См. также

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2

SetIpForwardEntry2