IP 帮助程序概述

Internet 协议帮助程序(IP 帮助程序)使驱动程序能够检索有关本地计算机的网络配置的信息并修改该配置。 IP 帮助程序还提供通知机制,确保在本地计算机网络配置的某些方面发生更改时通知驱动程序。 IP 帮助程序在 Windows Vista 及更高版本的 Microsoft Windows 操作系统中提供。

许多 IP 帮助程序函数传递结构参数,这些参数表示与管理信息库(MIB)技术关联的数据类型。 IP 帮助程序函数使用这些 MIB 结构来表示各种网络信息。

IP 帮助程序文档广泛使用术语“adapter”和“interface”。 适配器是一个旧术语,它是网络适配器的缩写形式,最初称为某种形式的网络硬件。 适配器是数据链接级抽象。

IETF RFC 文档中将接口描述为表示节点对链接的附件的抽象概念。 接口是 IP 级抽象。

驱动程序可以使用以下内核模式函数、MIB 结构和 MIB 和网络层 (NL) 枚举在本地计算机上检索和修改传输控制协议/Internet 协议 (TCP/IP) 传输的配置设置。

注意

 开发驱动程序代码时,请按照包含头文件的说明进行操作

接口转换函数

函数 说明

ConvertInterfaceAliasToLuid

将网络接口的本地唯一标识符(LUID)转换为 Unicode 接口名称。

ConvertInterfaceGuidToLuid

将网络接口的全局唯一标识符(GUID)转换为接口的 LUID。

ConvertInterfaceIndexToLuid

将网络接口的本地索引转换为接口的 LUID。

ConvertInterfaceLuidToAlias

将网络接口的 LUID 转换为接口别名。

ConvertInterfaceLuidToGuid

将网络接口的 LUID 转换为接口的 GUID。

ConvertInterfaceLuidToIndex

将网络接口的 LUID 转换为接口的本地索引。

ConvertInterfaceLuidToNameA

将网络接口的 LUID 转换为 ANSI 接口名称。

ConvertInterfaceLuidToNameW

将网络接口的 LUID 转换为 Unicode 接口名称。

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 地址管理函数

函数 说明

CreateAnycastIpAddressEntry

在本地计算机上添加新的任意广播 IP 地址条目。

CreateSortedAddressPairs

将提供的目标地址列表与主机的本地 IP 地址配对,并根据首选通信顺序对对进行排序。

CreateUnicastIpAddressEntry

在本地计算机上添加新的单播 IP 地址条目。

DeleteAnycastIpAddressEntry

删除本地计算机上的现有任意广播 IP 地址条目。

DeleteUnicastIpAddressEntry

从本地计算机中删除现有的单播 IP 地址条目。

GetAnycastIpAddressEntry

检索本地计算机上的现有任意广播 IP 地址条目的信息。

GetAnycastIpAddressTable

检索本地计算机上的任意广播 IP 地址表。

GetMulticastIpAddressEntry

检索本地计算机上的现有多播 IP 地址条目的信息。

GetMulticastIpAddressTable

检索本地计算机上的多播 IP 地址表。

GetUnicastIpAddressEntry

检索本地计算机上的现有单播 IP 地址条目的信息。

GetUnicastIpAddressTable

检索本地计算机上的单播 IP 地址表。

InitializeUnicastIpAddressEntry

使用 本地计算机上的单播 IP 地址条目的默认值初始化MIB_UNICASTIPADDRESS_ROW 结构。

NotifyStableUnicastIpAddressTable

检索本地计算机上的稳定单播 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

使用 本地计算机上的 IP 路由条目的默认值初始化MIB_IPFORWARD_ROW2 结构。

SetIpForwardEntry2

设置本地计算机上的 IP 路由条目的属性。

IP 表内存管理函数

函数 说明

FreeMibTable

释放由返回网络接口、地址和路由表的函数分配的缓冲区(例如 GetIfTable2GetAnycastIpAddressTable)。

Notification 函数

函数 说明

CancelMibChangeNotify2

为 IP 接口更改、IP 地址更改、IP 路由更改和检索稳定单播 IP 地址表的请求取消注册驱动程序。

NotifyIpInterfaceChange

注册驱动程序,以便在本地计算机上更改所有 IP 接口、IPv4 接口或 IPv6 接口时收到通知。

NotifyRouteChange2

注册以通知本地计算机上的 IP 路由条目更改。

NotifyUnicastIpAddressChange

注册以通知所有单播 IP 接口、单播 IPv4 地址或本地计算机上的单播 IPv6 地址的更改。

Teredo IPv6 客户端管理函数

函数 说明

GetTeredoPort

检索 Teredo 客户端在本地计算机上使用的动态 UDP 端口号。

NotifyTeredoPortChange

注册以通知对 Teredo 客户端在本地计算机上用于 Teredo 服务端口的 UDP 端口号的更改。

NotifyStableUnicastIpAddressTable

检索本地计算机上的稳定单播 IP 地址表。

MIB 结构

结构 说明

IP_ADDRESS_PREFIX

存储 IP 地址前缀。

MIB_ANYCASTIPADDRESS_ROW

存储有关任何广播 IP 地址的信息。

MIB_ANYCASTIPADDRESS_TABLE

包含任意广播 IP 地址条目的表。

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 枚举

枚举 说明

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 地址后缀或主机部分的源。