Функция 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 |