Функция 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 | Недопустимый параметр был передан функции. Эта ошибка возвращается, если возникает одна из следующих ситуаций:
|
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-маршрутов на локальном компьютере.