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


Функция SetIpForwardEntry2

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

Синтаксис

NETIOAPI_API SetIpForwardEntry2(
  _In_ const MIB_IPFORWARD_ROW2 *Route
);

Параметры

  • Маршрут [in]
    Указатель на запись MIB_IPFORWARD_ROW2 структуры для записи IP-маршрута. Драйвер должен задать элемент DestinationPrefix структуры MIB_IPFORWARD_ROW2 допустимым префиксом и семейством IP-адресов, задать элемент NextHop MIB_IPFORWARD_ROW2 допустимым IP-адресом и семейством, а также указать член InterfaceLuid или член InterfaceIndex MIB_IPFORWARD_ROW2.

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

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

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

Код возврата Description
STATUS_INVALID_PARAMETER

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

STATUS_NOT_FOUND

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

Другое

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

Замечания

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

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

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

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

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

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

SetIpForwardEntry2 игнорирует элементы возрастной и исходной структуры MIB_IPFORWARD_ROW2, на которую указывает параметр Row . Эти члены задаются сетевым стеком и не могут быть изменены с помощью функции SetIpForwardEntry2 .

Функция SetIpForwardEntry2 завершается ошибкой, если элементы DestinationPrefix и NextHop структуры MIB_IPFORWARD_ROW2, которые параметр Route указывает на отсутствие соответствия записи IP-маршрута в указанном интерфейсе.

Требования

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

Универсальный

Версия

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

Верхний колонтитул

Netioapi.h (include Netioapi.h)

Библиотека

Netio.lib

IRQL

< DISPATCH_LEVEL

См. также

CreateIpForwardEntry2

DeleteIpForwardEntry2

GetBestRoute2

GetIpForwardEntry2

GetIpForwardTable2

GetIpInterfaceEntry

InitializeIpForwardEntry

MIB_IPFORWARD_ROW2

MIB_IPFORWARD_TABLE2

MIB_IPINTERFACE_ROW

NotifyRouteChange2