Specifying Binding Interfaces
For each network component that it installs, a network INF file must specify the upper and lower binding interfaces for the component by adding the Interfaces key to the Ndi key.
The Interfaces key has at least two values:
A REG_SZ value that defines the interfaces to which the component can bind at its lower edge. For physical adapters, this interface should always be the network media, such as Ethernet, to which the adapter connects.
Note The DefUpper and DefLower values in Windows 95/98/Me network INF files, however, are not supported for INF files that will be used on Windows 2000 and later versions of the operating system.
The following table lists the Microsoft-supplied UpperRange values:
TDI interface to TCP/IP
NDIS 5.x (ndis2, ndis3, and ndis4 should no longer be used). This value should be specified for any non-ATM network component, such as a non-ATM adapter, that interfaces with NDIS at its upper edge.
NDIS 5.x with ATM support. Specified value for any ATM network component, such as an ATM adapter, whose upper edge interfaces with NDIS
Upper edge for a WAN adapter. When specified, this value causes the operating system to automatically enable the WAN adapter for use with RAS
Upper edge for a WAN adapter over which connection-oriented NDIS runs
Upper edge for any component that does not expose an upper edge for binding; such a component typically has a private interface at its upper edge
The Windows socket interface
Upper edge for an NDIS 5.x Net component (adapter) that binds only to an AppleTalk interface at its upper edge
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a DLC interface at its upper edge
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a TCP/IP interface at its upper edge
Upper edge for an NDIS 5.x Net component (adapter) that binds only to an IPX interface at its upper edge
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a NetBEUI interface at its upper edge
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a streams interface at its upper edge. This value is obsolete for Windows XP and later operating systems.
A mobile broadband (MB) device that supports IPv4.
A mobile broadband (MB) device that supports IPv6.
The following table lists the Microsoft-supplied LowerRange values:
Lower edge for an Ethernet adapter
Lower edge for an ATM adapter
Lower edge for a token ring adapter
Lower edge for a serial adapter
Lower edge for an FDDI adapter
Lower edge for a baseband adapter
Lower edge for a broadband adapter
Lower edge for a Bluetooth adapter
Lower edge for an Arcnet adapter
Lower edge for an ISDN adapter
Lower edge for a LocalTalk adapter
Lower edge for a WAN adapter
Lower edge for any component that does not expose a lower edge for binding
NDIS 5.x. (ndis2, ndis3, and ndis4 should no longer be used.) For any network component whose lower edge interfaces through NDIS with non-ATM components
Ndis 5.x with ATM support. For any network component whose lower edge interfaces through NDIS with ATM components
Lower edge for a native 802.11 wireless LAN adapter.
Lower edge for a mobile broadband (MB) adapter
Lower edge for a virtual wifi interface
The UpperRange and LowerRange values specify the types of interfaces -- not the actual components -- to which a component can bind. The binding engine binds a network component to all components that provide the specified interface at the appropriate (upper or lower) edge. For example, a protocol with a LowerRange of ndis5 binds to all components that have an UpperRange of ndis5, such as physical or virtual adapters.
If an NDIS 5.x Net component (adapter) works only with one or more specific protocols, then its UpperRange should be assigned one or more protocol-specific values, such as ndis5_atalk, ndis5_dlc, ndis5_ip, ndis5_ipx, ndis5_nbf, or ndis5_streams. Such a net class component should not be assigned an UpperRange value of ndis5, because this would cause that component to bind to all protocols that provide an ndis5 lower edge.
An INF-file-writer can define and use vendor-specific UpperRange and LowerRange values for private binding interfaces. For example, if a vendor wants to bind its adapter only to its own proprietary protocol driver, the INF-file-writer could specify XXX for the UpperRange of the adapter and XXX for the LowerRange of the proprietary protocol. The Windows 2000 binding engine will bind all components that have an UpperRange of XXX (in this case, the adapter) with all components that have a LowerRange of XXX (in this case, the proprietary protocol).
The following is an example of an add-registry-section that adds UpperRange and LowerRange values for an ATM adapter:
[addreg-section] HKR, Ndi\Interfaces, UpperRange, 0, "ndisATM" HKR, Ndi\Interfaces, LowerRange, 0, "atm"