Обзор IP-хелпера
Помощник по протоколу Internet Protocol (IP Helper) позволяет драйверам получать сведения о конфигурации сети локального компьютера и изменять ее. IP Helper также предоставляет системы уведомлений, чтобы драйвер уведомлялся при изменении конфигурации сети локального компьютера. Вспомогательный IP-адрес доступен в Windows Vista и более поздних версиях операционных систем Microsoft Windows.
Многие функции IP Helper передают параметры структур, представляющие типы данных, связанные с технологией MIB (База управления информацией). Вспомогательные функции IP-адресов используют эти структуры MIB для представления различных сетевых сведений.
В документации по IP-помощнику используются термины адаптера и интерфейса. Адаптер является устаревшим термином, который является сокращенной формой сетевого адаптера, который первоначально ссылался на некоторое сетевое оборудование. Адаптер — это абстракция уровня связи данных.
Интерфейс описан в документах RFC IETF как абстрактная концепция, представляющее присоединение узла к ссылке. Интерфейс — это абстракция уровня IP.
Драйвер может использовать следующие функции режима ядра, структуры MIB и перечисления MIB и сетевого уровня (NL) для получения и изменения параметров конфигурации для транспортировки данных по протоколам TCP/IP (Протокол управления передачей/Протокол интернета) на локальном компьютере.
Заметка
При разработке кода драйвера следуйте инструкциям по включая файлы заголовков.
Функции преобразования интерфейса
Функция | Описание |
---|---|
ConvertInterfaceAliasToLuid | Преобразует локальный уникальный идентификатор (LUID) для сетевого интерфейса в имя интерфейса Юникода. |
ConvertInterfaceGuidToLuid | Преобразует глобальный уникальный идентификатор (GUID) сетевого интерфейса в LUID этого интерфейса. |
ConvertInterfaceIndexToLuid | Преобразует локальный индекс сетевого интерфейса в LUID для интерфейса. |
ConvertInterfaceLuidToAlias | Преобразует LUID для сетевого интерфейса в псевдоним интерфейса. |
ConvertInterfaceLuidToGuid | Преобразует LUID для сетевого интерфейса в GUID для интерфейса. |
ConvertInterfaceLuidToIndex | Преобразует LUID для сетевого интерфейса в локальный индекс интерфейса. |
ConvertInterfaceLuidToNameA | Преобразует LUID для сетевого интерфейса в имя интерфейса ANSI. |
ConvertInterfaceLuidToNameW | Преобразует LUID для сетевого интерфейса в имя интерфейса Юникода. |
ConvertInterfaceNameToLuidA | Преобразует имя сетевого интерфейса ANSI в LUID этого интерфейса. |
ConvertInterfaceNameToLuidW | Преобразует имя сетевого интерфейса Unicode в LUID для интерфейса. |
if_indextoname | Преобразует локальный индекс сетевого интерфейса в имя интерфейса ANSI. |
if_nametoindex | Преобразует имя интерфейса ANSI для сетевого интерфейса в локальный индекс интерфейса. |
Функции управления интерфейсами
Функция | Описание |
---|---|
GetIfEntry2 | Извлекает сведения для указанного интерфейса на локальном компьютере. |
GetIfStackTable | Извлекает таблицу записей строк стека сетевого интерфейса, которые указывают связь сетевых интерфейсов в стеке интерфейсов. |
GetIfTable2 | Извлекает таблицу интерфейса MIB-II. |
GetIfTable2Ex | Извлекает таблицу интерфейса MIB-II, заданную уровнем информации об интерфейсе. |
GetInvertedIfStackTable | Извлекает таблицу инвертированных записей строк стека сетевых интерфейсов, которые указывают связь сетевых интерфейсов в стеке интерфейсов. |
GetIpInterfaceEntry | Извлекает сведения о IP-адресах указанного интерфейса на локальном компьютере. |
GetIpInterfaceTable | Получает записи интерфейса IP на локальном компьютере. |
InitializeIpInterfaceEntry | Инициализирует элементы записи структуры MIB_IPINTERFACE_ROW со значениями по умолчанию. |
SetIpInterfaceEntry | Задает свойства IP-интерфейса на локальном компьютере. |
Функции управления IP-адресами
Функция | Описание |
---|---|
СоздатьЗаписьАдресаAnycast | Добавляет новую запись адреса anycast IP на локальном компьютере. |
СоздатьУпорядоченныеПарыАдресов | Объединяет указанный список адресов назначения вместе с локальными IP-адресами хост-компьютера и сортирует пары в соответствии с предпочитаемым порядком связи. |
CreateUnicastIpAddressEntry | Добавляет новую запись одноадресного IP-адреса на локальном компьютере. |
DeleteAnycastIpAddressEntry | Удаляет существующую запись аникаст IP-адреса с локального компьютера. |
DeleteUnicastIpAddressEntry | Удаляет имеющуюся запись одноадресного IP-адреса с локального компьютера. |
GetAnycastIpAddressEntry | Извлекает информацию для существующей записи IP-адреса anycast на локальном компьютере. |
GetAnycastIpAddressTable | Извлекает таблицу эникаст IP-адресов на локальном компьютере. |
GetMulticastIpAddressEntry | Извлекает сведения о существующей записи IP-адреса многоадресной рассылки на локальном компьютере. |
GetMulticastIpAddressTable | Извлекает таблицу IP-адресов многоадресной рассылки на локальном компьютере. |
GetUnicastIpAddressEntry | Извлекает сведения для существующей записи уникастного IP-адреса на локальном компьютере. |
GetUnicastIpAddressTable | Извлекает таблицу IP-адресов одноадресной рассылки на локальном компьютере. |
InitializeUnicastIpAddressEntry | Инициализирует структуру MIB_UNICASTIPADDRESS_ROW со значениями по умолчанию для записи одноадресного IP-адреса на локальном компьютере. |
УведомитьСтабильнаяЮникастнаяТаблицаАйпиАдресов | Извлекает стабильную таблицу одиночных IP-адресов на локальном компьютере. |
SetUnicastIpAddressEntry | Задает параметры записи одноадресного IP-адреса на локальном компьютере. |
Функции управления IP-адресами соседей
Функция | Описание |
---|---|
CreateIpNetEntry2 | Создает новую запись IP-адреса соседа на локальном компьютере. |
DeleteIpNetEntry2 | Удаляет запись соседнего IP-адреса с локального компьютера. |
FlushIpNetTable2 | Очищает таблицу соседей IP-адресов на локальном компьютере. |
GetIpNetEntry2 | Извлекает информацию о записи соседнего IP-адреса на локальном компьютере. |
GetIpNetTable2 | Извлекает таблицу соседей IP-адресов на локальном компьютере. |
ResolveIpNetEntry2 | Определяет физический адрес для записи соседнего IP-адреса на локальном компьютере. |
SetIpNetEntry2 | Задает физический адрес существующей записи IP-адреса соседа на локальном компьютере. |
Функции управления IP-путями
Функция | Описание |
---|---|
FlushIpPathTable | Очищает таблицу IP-путей на локальном компьютере. |
GetIpPathEntry | Извлекает информацию о записи IP-пути на локальном компьютере. |
GetIpPathTable | Извлекает сведения для таблицы IP-путей на локальном компьютере. |
Функции управления IP-маршрутами
Функция | Описание |
---|---|
CreateIpForwardEntry2 | Создает новую запись IP-маршрута на локальном компьютере. |
DeleteIpForwardEntry2 | Удаляет запись IP-маршрута с локального компьютера. |
GetBestRoute2 | Извлекает запись IP-маршрута на локальном компьютере для оптимального маршрута к указанному IP-адресу назначения. |
GetIpForwardEntry2 | Извлекает сведения для записи IP-маршрута на локальном компьютере. |
GetIpForwardTable2 | Извлекает записи IP-маршрута на локальном компьютере. |
InitializeIpForwardEntry | Инициализирует структуру MIB_IPFORWARD_ROW2, задавая значения по умолчанию для записи маршрута IP на локальном компьютере. |
SetIpForwardEntry2 | Задает свойства записи IP-маршрута на локальном компьютере. |
Функции управления памятью IP-таблиц
Функция | Описание |
---|---|
FreeMibTable | Освобождает буфер, выделенный функциями, возвращающими таблицы сетевых интерфейсов, адресов и маршрутов (например, GetIfTable2 и GetAnycastIpAddressTable). |
Функции уведомлений
Функция | Описание |
---|---|
CancelMibChangeNotify2 | Отменяет регистрацию драйвера для уведомлений об изменениях IP-интерфейса, изменений IP-адреса, изменений IP-маршрута и запросов на получение таблицы стабильных одноадресных IP-адресов. |
NotifyIpInterfaceChange | Регистрирует драйвер для уведомления об изменениях всех IP-интерфейсов, интерфейсов IPv4 или IPv6 на локальном компьютере. |
NotifyRouteChange2 | Регистрирует уведомления об изменениях записей IP-маршрутов на локальном компьютере. |
NotifyUnicastIpAddressChange | Регистрировать, чтобы получать уведомления об изменениях всех одноадресных IP-интерфейсов, одноадресных IPv4-адресов или одноадресных IPv6-адресов на локальном компьютере. |
Функции управления клиентами Teredo IPv6
Функция | Описание |
---|---|
GetTeredoPort | Извлекает динамический номер порта UDP, используемый клиентом Teredo на локальном компьютере. |
NotifyTeredoPortChange | Регистрирует уведомления о изменениях номера UDP-порта, который клиент Teredo использует в качестве порта службы Teredo на локальном компьютере. |
NotifyStableUnicastIpAddressTable | Извлекает устойчивую таблицу одноадресных IP-адресов на локальном компьютере. |
Структуры MIB
Структура | Описание |
---|---|
IP_ADDRESS_PREFIX | Сохраняет префикс IP-адреса. |
MIB_ANYCASTIPADDRESS_ROW | Хранит сведения о аникаст IP-адресе. |
MIB_ANYCASTIPADDRESS_TABLE | Содержит таблицу записей IP-адресов anycast. |
MIB_IF_ROW2 | Хранит сведения о конкретном интерфейсе. |
MIB_IF_TABLE2 | Содержит таблицу записей логического и физического интерфейса. |
MIB_IFSTACK_ROW | Представляет связь между двумя сетевыми интерфейсами. |
MIB_IFSTACK_TABLE | Содержит таблицу записей строк в стеке сетевых интерфейсов. Эта таблица указывает связь сетевых интерфейсов в стеке интерфейсов. |
MIB_INVERTEDIFSTACK_ROW | Представляет связь между двумя сетевыми интерфейсами. |
MIB_INVERTEDIFSTACK_TABLE | Содержит таблицу инвертированных записей строк стека сетевых интерфейсов. Эта таблица указывает связь сетевых интерфейсов в стеке интерфейсов в обратном порядке. |
MIB_IPFORWARD_ROW2 | Хранит сведения о записи IP-маршрута. |
MIB_IPFORWARD_TABLE2 | Содержит таблицу записей IP-маршрутов. |
MIB_IPINTERFACE_ROW | Хранит сведения об управлении интерфейсом для определенного семейства IP-адресов в сетевом интерфейсе. |
MIB_IPINTERFACE_TABLE | Содержит таблицу записей IP-интерфейса. |
MIB_IPNET_ROW2 | Хранит сведения о соседнем IP-адресе. |
MIB_IPNET_TABLE2 | Содержит таблицу соседних записей IP-адресов. |
MIB_IPPATH_ROW | Хранит сведения о записи IP-маршрута. |
MIB_IPPATH_TABLE | Содержит таблицу записей IP маршрутов. |
MIB_MULTICASTIPADDRESS_ROW | Хранит сведения об IP-адресе многоадресной рассылки. |
MIB_MULTICASTIPADDRESS_TABLE | Содержит таблицу записей IP-адресов многоадресной рассылки. |
MIB_UNICASTIPADDRESS_ROW | Хранит сведения об одноадресном IP-адресе. |
MIB_UNICASTIPADDRESS_TABLE | Содержит таблицу записей ункастовых IP-адресов. |
Перечисления МИБ
Перечисление | Описание |
---|---|
MIB_IF_TABLE_LEVEL | Определяет уровень получаемых сведений о интерфейсе. |
MIB_NOTIFICATION_TYPE | Определяет тип уведомления, передаваемый функции обратного вызова при возникновении уведомления. |
Перечисления NL
Перечисление | Описание |
---|---|
NL_ADDRESS_TYPE | Указывает тип IP-адреса сетевого слоя. |
NL_DAD_STATE | Определяет состояние обнаружения повторяющихся адресов (DAD). |
NL_LINK_LOCAL_ADDRESS_BEHAVIOR | Определяет поведение локального адреса ссылки. |
NL_NEIGHBOR_STATE | Определяет состояние соседнего IP-адреса сетевого слоя, как описано в RFC 2461, разделе 7.3.2. |
NL_PREFIX_ORIGIN | Определяет источник префикса или сетевой части IP-адреса. |
NL_ROUTE_ORIGIN | Определяет источник IP-маршрута. |
NL_ROUTE_PROTOCOL | Определяет механизм маршрутизации, с которым был добавлен IP-маршрут, как описано в RFC 4292. |
NL_ROUTER_DISCOVERY_BEHAVIOR | Определяет поведение обнаружения маршрутизатора, как описано в RFC 2461. |
NL_SUFFIX_ORIGIN | Определяет источник суффикса или части узла IP-адреса. |