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"