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

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

CreateSortedAddressPairs

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

CreateUnicastIpAddressEntry

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

DeleteAnycastIpAddressEntry

删除本地计算机上的现有 anycast IP 地址条目。

DeleteUnicastIpAddressEntry

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

GetAnycastIpAddressEntry

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

GetAnycastIpAddressTable

检索本地计算机上的 anycast 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 端口号。

NotifyTeredoPortChange

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

NotifyStableUnicastIpAddressTable

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

MIB 结构

结构 说明

IP_ADDRESS_PREFIX

存储 IP 地址前缀。

MIB_ANYCASTIPADDRESS_ROW

存储有关 anycast 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 地址的后缀或主机部分的来源。