Rediger

Del via


IP Helper overview

Internet Protocol Helper (IP Helper) enables drivers to retrieve information about the local computer's network configuration and to modify that configuration. IP Helper also provides notification mechanisms to make sure that a driver is notified when certain aspects of the local computer network configuration change. IP Helper is available in Windows Vista and later versions of the Microsoft Windows operating systems.

Many of the IP Helper functions pass structure parameters that represent data types that are associated with the Management Information Base (MIB) technology. The IP Helper functions use these MIB structures to represent various networking information.

The IP Helper documentation uses the terms adapter and interface extensively. An adapter is a legacy term that's an abbreviated form of network adapter, which originally referred to some form of network hardware. An adapter is a data link-level abstraction.

An interface is described in the IETF RFC documents as an abstract concept that represents a node's attachment to a link. An interface is an IP-level abstraction.

Your driver can use the following kernel-mode functions, MIB structures, and MIB and network layer (NL) enumerations to retrieve and modify configuration settings for Transmission Control Protocol/Internet Protocol (TCP/IP) transport on a local computer.

Note

When you develop driver code, follow the instructions for including header files.

Interface conversion functions

Function Description
ConvertInterfaceAliasToLuid Converts a locally unique identifier (LUID) for a network interface to the Unicode interface name.
ConvertInterfaceGuidToLuid Converts a globally unique identifier (GUID) for a network interface to the LUID for the interface.
ConvertInterfaceIndexToLuid Converts a local index for a network interface to the LUID for the interface.
ConvertInterfaceLuidToAlias Converts a LUID for a network interface to an interface alias.
ConvertInterfaceLuidToGuid Converts a LUID for a network interface to a GUID for the interface.
ConvertInterfaceLuidToIndex Converts a LUID for a network interface to the local index for the interface.
ConvertInterfaceLuidToNameA Converts a LUID for a network interface to the ANSI interface name.
ConvertInterfaceLuidToNameW Converts a LUID for a network interface to the Unicode interface name.
ConvertInterfaceNameToLuidA Converts an ANSI network interface name to the LUID for the interface.
ConvertInterfaceNameToLuidW Converts a Unicode network interface name to the LUID for the interface.
if_indextoname Converts the local index for a network interface to the ANSI interface name.
if_nametoindex Converts the ANSI interface name for a network interface to the local index for the interface.

Interface management functions

Function Description
GetIfEntry2 Retrieves information for the specified interface on the local computer.
GetIfStackTable Retrieves a table of network interface stack row entries that specify the relationship of the network interfaces on an interface stack.
GetIfTable2 Retrieves the MIB-II interface table.
GetIfTable2Ex Retrieves the MIB-II interface table, given a level of interface information to retrieve.
GetInvertedIfStackTable Retrieves a table of inverted network interface stack row entries that specify the relationship of the network interfaces on an interface stack.
GetIpInterfaceEntry Retrieves IP information for the specified interface on the local computer.
GetIpInterfaceTable Retrieves the IP interface entries on the local computer.
InitializeIpInterfaceEntry Initializes the members of a MIB_IPINTERFACE_ROW structure entry with default values.
SetIpInterfaceEntry Sets the properties of an IP interface on the local computer.

IP address management functions

Function Description
CreateAnycastIpAddressEntry Adds a new anycast IP address entry on the local computer.
CreateSortedAddressPairs Pairs a supplied list of destination addresses together with the host machine's local IP addresses and sorts the pairs according to the preferred order of communication.
CreateUnicastIpAddressEntry Adds a new unicast IP address entry on the local computer.
DeleteAnycastIpAddressEntry Deletes an existing anycast IP address entry from the local computer.
DeleteUnicastIpAddressEntry Deletes an existing unicast IP address entry from the local computer.
GetAnycastIpAddressEntry Retrieves information for an existing anycast IP address entry on the local computer.
GetAnycastIpAddressTable Retrieves the anycast IP address table on the local computer.
GetMulticastIpAddressEntry Retrieves information for an existing multicast IP address entry on the local computer.
GetMulticastIpAddressTable Retrieves the multicast IP address table on the local computer.
GetUnicastIpAddressEntry Retrieves information for an existing unicast IP address entry on the local computer.
GetUnicastIpAddressTable Retrieves the unicast IP address table on the local computer.
InitializeUnicastIpAddressEntry Initializes a MIB_UNICASTIPADDRESS_ROW structure with default values for a unicast IP address entry on the local computer.
NotifyStableUnicastIpAddressTable Retrieves the stable unicast IP address table on a local computer.
SetUnicastIpAddressEntry Sets the properties of an existing unicast IP address entry on the local computer.

IP neighbor address management functions

Function Description
CreateIpNetEntry2 Creates a new neighbor IP address entry on the local computer.
DeleteIpNetEntry2 Deletes a neighbor IP address entry from the local computer.
FlushIpNetTable2 Flushes the IP neighbor table on the local computer.
GetIpNetEntry2 Retrieves information for a neighbor IP address entry on the local computer.
GetIpNetTable2 Retrieves the IP neighbor table on the local computer.
ResolveIpNetEntry2 Resolves the physical address for a neighbor IP address entry on the local computer.
SetIpNetEntry2 Sets the physical address of an existing neighbor IP address entry on the local computer.

IP path management functions

Function Description
FlushIpPathTable Flushes the IP path table on the local computer.
GetIpPathEntry Retrieves information for an IP path entry on the local computer.
GetIpPathTable Retrieves information for an IP path table on the local computer.

IP route management functions

Function Description
CreateIpForwardEntry2 Creates a new IP route entry on the local computer.
DeleteIpForwardEntry2 Deletes an IP route entry from the local computer.
GetBestRoute2 Retrieves the IP route entry on the local computer for the best route to the specified destination IP address.
GetIpForwardEntry2 Retrieves information for an IP route entry on the local computer.
GetIpForwardTable2 Retrieves the IP route entries on the local computer.
InitializeIpForwardEntry Initializes a MIB_IPFORWARD_ROW2 structure with default values for an IP route entry on the local computer.
SetIpForwardEntry2 Sets the properties of an IP route entry on the local computer.

IP table memory management functions

Function Description
FreeMibTable Frees the buffer that is allocated by the functions that return tables of network interfaces, addresses, and routes (for example, GetIfTable2 and GetAnycastIpAddressTable).

Notification functions

Function Description
CancelMibChangeNotify2 Deregisters the driver for change notifications for IP interface changes, IP address changes, IP route changes, and requests to retrieve the stable unicast IP address table.
NotifyIpInterfaceChange Registers the driver to be notified for changes to all IP interfaces, IPv4 interfaces, or IPv6 interfaces on a local computer.
NotifyRouteChange2 Registers to be notified for changes to IP route entries on a local computer.
NotifyUnicastIpAddressChange Registers to be notified for changes to all unicast IP interfaces, unicast IPv4 addresses, or unicast IPv6 addresses on a local computer.

Teredo IPv6 client management functions

Function Description
GetTeredoPort Retrieves the dynamic UDP port number that the Teredo client uses on the local computer.
NotifyTeredoPortChange Registers to be notified for changes to the UDP port number that the Teredo client uses for the Teredo service port on a local computer.
NotifyStableUnicastIpAddressTable Retrieves the stable unicast IP address table on a local computer.

MIB structures

Structure Description
IP_ADDRESS_PREFIX Stores an IP address prefix.
MIB_ANYCASTIPADDRESS_ROW Stores information about an anycast IP address.
MIB_ANYCASTIPADDRESS_TABLE Contains a table of anycast IP address entries.
MIB_IF_ROW2 Stores information about a particular interface.
MIB_IF_TABLE2 Contains a table of logical and physical interface entries.
MIB_IFSTACK_ROW Represents the relationship between two network interfaces.
MIB_IFSTACK_TABLE Contains a table of row entries in the network interface stack. This table specifies the relationship of the network interfaces on an interface stack.
MIB_INVERTEDIFSTACK_ROW Represents the relationship between two network interfaces.
MIB_INVERTEDIFSTACK_TABLE Contains a table of inverted network interface stack row entries. This table specifies the relationship of the network interfaces on an interface stack in reverse order.
MIB_IPFORWARD_ROW2 Stores information about an IP route entry.
MIB_IPFORWARD_TABLE2 Contains a table of IP route entries.
MIB_IPINTERFACE_ROW Stores interface management information for a particular IP address family on a network interface.
MIB_IPINTERFACE_TABLE Contains a table of IP interface entries.
MIB_IPNET_ROW2 Stores information about a neighbor IP address.
MIB_IPNET_TABLE2 Contains a table of neighbor IP address entries.
MIB_IPPATH_ROW Stores information about an IP path entry.
MIB_IPPATH_TABLE Contains a table of IP path entries.
MIB_MULTICASTIPADDRESS_ROW Stores information about a multicast IP address.
MIB_MULTICASTIPADDRESS_TABLE Contains a table of multicast IP address entries.
MIB_UNICASTIPADDRESS_ROW Stores information about a unicast IP address.
MIB_UNICASTIPADDRESS_TABLE Contains a table of unicast IP address entries.

MIB enumerations

Enumeration Description
MIB_IF_TABLE_LEVEL Defines the level of interface information to retrieve.
MIB_NOTIFICATION_TYPE Defines the notification type that is passed to a callback function when a notification occurs.

NL enumerations

Enumeration Description
NL_ADDRESS_TYPE Specifies the IP address type of the network layer.
NL_DAD_STATE Defines the duplicate address detection (DAD) state.
NL_LINK_LOCAL_ADDRESS_BEHAVIOR Defines the link local address behavior.
NL_NEIGHBOR_STATE Defines the state of a network layer neighbor IP address, as described in RFC 2461, section 7.3.2.
NL_PREFIX_ORIGIN Defines the origin of the prefix or network part of the IP address.
NL_ROUTE_ORIGIN Defines the origin of the IP route.
NL_ROUTE_PROTOCOL Defines the routing mechanism that an IP route was added with, as described in RFC 4292.
NL_ROUTER_DISCOVERY_BEHAVIOR Defines the router discovery behavior, as described in RFC 2461.
NL_SUFFIX_ORIGIN Defines the origin of the suffix or host part of the IP address.