Функция GetIpPathTable
Функция GetIpPathEntry извлекает сведения для записи IP-пути на локальном компьютере.
Синтаксис
NETIOAPI_API GetIpPathTable(
_In_ ADDRESS_FAMILY Family,
_Out_ PMIB_IPPATH_TABLE *Table
);
Параметры
Family [in]
Извлекаемая семья адресов.Возможные значения для семейства адресов перечислены в файле заголовка Winsock2.h. Обратите внимание, что значения для семейства адресов AF_ и констант семейства PF_ протоколов идентичны (например, AF_INET и PF_INET), поэтому можно использовать обе константы.
В Windows Vista и более поздних версиях операционных систем Windows возможные значения параметра Family определяются в файле заголовка Ws2def.h. Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Netioapi.h, и никогда не следует использовать Ws2def.h напрямую.
В настоящее время для семейства адресов поддерживаются следующие значения:
AF_INET
Семейство адресов IPv4. Если это значение указано, эта функция возвращает таблицу IP-путей, содержащую только записи IPv4.AF_INET6
Семейство адресов IPv6. Если это значение указано, эта функция возвращает таблицу IP-путей, содержащую только записи IPv6.AF_UNSPEC
Семейство адресов не указано. Если это значение указано, эта функция возвращает таблицу IP-путей, содержащую записи IPv4 и IPv6.
Таблица [out]
Указатель на структуру MIB_IPPATH_TABLE , содержащую таблицу записей IP-путей на локальном компьютере.
Возвращаемое значение
GetIpPathEntry возвращает STATUS_SUCCESS, если функция выполнена успешно.
Если функция завершается сбоем, GetIpPathEntry возвращает один из следующих кодов ошибок:
Код возврата | Описание |
---|---|
STATUS_INVALID_PARAMETER | В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре Table передается указатель NULL или параметр Family не указан как AF_INET, AF_INET6 или AF_UNSPEC. |
STATUS_NOT_ENOUGH_MEMORY | Недостаточно ресурсов памяти для завершения операции. |
STATUS_NOT_FOUND | Записи IP-пути, указанные в параметре Family , не найдены. |
STATUS_NOT_SUPPORTED | Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере не расположен стек IPv4 и AF_INET был указан в параметре Family , или если на локальном компьютере не расположен стек IPv6 и AF_INET6 был указан в параметре Family . Эта ошибка также возвращается в версиях Windows, в которых эта функция не поддерживается. |
Другое | Используйте функцию FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки. |
Комментарии
Функция GetIpPathTable перечисляет записи IP-пути на локальном компьютере и возвращает эти сведения в MIB_IPPATH_TABLE структуре.
GetIpPathTable возвращает записи IP-пути в структуре MIB_IPPATH_TABLE в буфере, на которую указывает параметр Table . Структура MIB_IPPATH_TABLE содержит число записей IP-путей и массив MIB_IPPATH_ROW структур для каждой записи IP-пути. Если эти возвращаемые структуры больше не требуются, драйвер должен освободить память, вызвав FreeMibTable.
Драйвер должен инициализировать параметр Family для AF_INET, AF_INET6 или AF_UNSPEC.
Обратите внимание, что возвращаемая MIB_IPPATH_TABLE структура, на которую указывает параметр Table , может содержать заполнение для выравнивания между элементом NumEntries и первой записью массива MIB_IPPATH_ROW в элементе Table структуры MIB_IPPATH_TABLE. Между MIB_IPPATH_ROW записями массива также может присутствовать заполнение для выравнивания. Любой доступ к записи массива MIB_IPPATH_ROW должен предполагать наличие заполнения.
Требования
Целевая платформа |
Универсальное |
Версия |
Доступно в Windows Vista и более поздних версиях операционных систем Windows. |
Заголовок |
Netioapi.h (включая Netioapi.h) |
Библиотека |
Netio.lib |
IRQL |
< DISPATCH_LEVEL |