IP 帮助程序概述

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

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

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

在 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)。

通知函数

功能 描述
CancelMibChangeNotify2 取消为 IP 接口更改、IP 地址更改、IP 路由更改以及检索稳定单播 IP 地址表请求的通知所注册的驱动程序。
NotifyIpInterfaceChange 注册驱动程序,以便在本地计算机上更改所有 IP 接口、IPv4 接口或 IPv6 接口时收到通知。
NotifyRouteChange2 注册以接收本地计算机上 IP 路由条目更改的通知。
NotifyUnicastIpAddressChange 注册以获取有关本地计算机上所有单播 IP 接口、单播 IPv4 地址或单播 IPv6 地址更改的通知。

Teredo IPv6 客户端管理功能

功能 描述
GetTeredoPort 检索 Teredo 客户端在本地计算机上使用的动态 UDP 端口号。
通知Teredo端口变更 注册以接收 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 地址后缀或主机部分的源。