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 | 释放由返回网络接口、地址和路由表的函数分配的缓冲区(例如,GetIfTable2 和 GetAnycastIpAddressTable)。 |
通知函数
功能 | 描述 |
---|---|
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 地址后缀或主机部分的源。 |