4.2 Key Features of NDIS 3

Key features of NDIS 3 include the following:

Single NIC Driver ¾ In NDIS 3, only one image of a NIC driver is used. This single image maintains information describing each of multiple underlying network interface cards that it controls.

NDIS Interface Library ¾ As discussed in the previous section, the NDIS 3 library (NDIS.SYS) provides a fully abstracted interface (API) to which a NIC driver is written. This allows NIC driver code to be easily ported to other NDIS 3 platforms, such as Windows NT and Windows 95, usually with a simple recompilation. The NIC and transport drivers need not know each other's function entry points. Instead, they each register their respective function entry points with the NDIS library, and then make calls to the NDIS library. The NDIS library forwards the call to the appropriate entry point in the target driver.

Multiprocessor Support ¾ The NDIS 3 interface library provides all of the support functions needed to enable transport and NIC drivers to operate safely on, and take advantage of, a platform that features multiple, concurrently executing processors.

Loopback Support ¾ NDIS 3 NIC drivers support "loopback". If process A is sending a message to process B on the same machine, the data frames handed down by the transport driver will be "looped back" by the NIC driver, and forwarded up via the transport driver to process B. In cases where the transport driver supports loopback, messages destined for another process on the local station will be looped back by the transport driver, and will therefore never make it down as far as the NIC driver.

Multiple Transport Driver Support ¾ An NDIS 3 NIC driver supports multiple overlying trasnport drivers bound through the NIC driver to multiple underlying network interface cards. The NIC driver can maintain binding information, and can indicate a received packet to all transport drivers (and other NDIS clients, such as the Microsoft Network Monitor) bound to the network interface card on which the packet was received. For miniport NIC drivers and full NIC drivers that utilize filter libraries, this task is made even easier. By making a single NDIS library call, these NIC drivers can indicate an incoming packet to multiple overlying transport drivers.

Administration ¾ In NDIS 3, mechanisms are defined by which NDIS clients can query all information that the NIC driver maintains about itself and each of the network interface cards it controls.

Options Flags ¾ The packet descriptor, passed from transport to NIC driver, not only describes the network packet to be transmitted, but it also includes a flags bitmask that can be used to represent additional information to the NIC driver, such as packet priority information, or a request for a certain quality of service for the packet transmission.

ARCNET and WAN Support ¾ NDIS 3 provides a way for ARCNET and WAN NIC drivers to determine if a bound transport driver supports their native frame format, or if they must pay a performance penalty and translate between the transport driver supported frame format (such as Ethernet or Token Ring) and their native frame format.