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:
UpperRange
A REG_SZ value that defines the interfaces to which the component can bind at its top edge.
LowerRange
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:
Value | Description |
---|---|
netbios |
NetBIOS |
ipx |
IPX |
tdi |
TDI interface to TCP/IP |
ndis5 |
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. |
Ndisatm |
NDIS 5.x with ATM support. Specified value for any ATM network component, such as an ATM adapter, whose upper edge interfaces with NDIS |
ndiswan |
Upper edge for a WAN adapter. When specified, this value causes the operating system to automatically enable the WAN adapter for use with RAS |
Ndiscowan |
Upper edge for a WAN adapter over which connection-oriented NDIS runs |
noupper |
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 |
winsock |
The Windows socket interface |
ndis5_atalk |
Upper edge for an NDIS 5.x Net component (adapter) that binds only to an AppleTalk interface at its upper edge |
ndis5_dlc |
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a DLC interface at its upper edge |
ndis5_ip |
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a TCP/IP interface at its upper edge |
ndis5_ipx |
Upper edge for an NDIS 5.x Net component (adapter) that binds only to an IPX interface at its upper edge |
ndis5_nbf |
Upper edge for an NDIS 5.x Net component (adapter) that binds only to a NetBEUI interface at its upper edge |
ndis5_streams |
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. |
flpp4 |
A mobile broadband (MB) device that supports IPv4. |
flpp6 |
A mobile broadband (MB) device that supports IPv6. |
The following table lists the Microsoft-supplied LowerRange values:
Value | Description |
---|---|
ethernet |
Lower edge for an Ethernet adapter |
atm |
Lower edge for an ATM adapter |
tokenring |
Lower edge for a token ring adapter |
serial |
Lower edge for a serial adapter |
fddi |
Lower edge for an FDDI adapter |
baseband |
Lower edge for a baseband adapter |
broadband |
Lower edge for a broadband adapter |
bluetooth |
Lower edge for a Bluetooth adapter |
arcnet |
Lower edge for an Arcnet adapter |
isdn |
Lower edge for an ISDN adapter |
localtalk |
Lower edge for a LocalTalk adapter |
wan |
Lower edge for a WAN adapter |
nolower |
Lower edge for any component that does not expose a lower edge for binding |
ndis5 |
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 |
Ndisatm |
Ndis 5.x with ATM support. For any network component whose lower edge interfaces through NDIS with ATM components |
Wlan |
Lower edge for a native 802.11 wireless LAN adapter. |
ppip |
Lower edge for a mobile broadband (MB) adapter |
vwifi |
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.
Note
NDIS LWF drivers can't attach to adapters that have nolower in their LowerRange of their INF file. NDIS LWF drivers aren't allowed to have nolower in their FilterMediaTypes.
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"