NDIS Network Drivers

The network driver interface specification (NDIS) is the mechanism by which Windows CE supports network connectivity. NDIS provides a pair of abstraction layers used to connect networking drivers to protocol stacks, such as the TCP/IP and Infrared Data Association (IrDA), and to network adapters, such as Ethernet cards. NDIS presents two sets of APIs for writers of network drivers: one set interfaces to the networking protocol stacks, and one set interfaces to network interface cards (NICs).

Windows CE versions 2.0 and later implement a subset of the NDIS 4.0 model used by Windows NT, enabling OEMs and independent hardware vendors (IHVs) to port existing Windows NT networking drivers to Windows CE. The full NDIS supports several types of network driver, but Windows CE versions 2.0 and later support only miniport drivers, not monolithic or full NIC drivers. In addition, Ethernet and IrDA are the only NDIS media types supported in Windows CE 2.10.

The following illustration shows the relationships among protocol stacks, NDIS, NICs, and miniport drivers in Windows CE.

For miniport drivers, Windows CE is largely source-code compatible with Windows NT. This means that, with a few exceptions, Windows CE and Windows NT support identical NDIS APIs. Consult the Windows NT Device Driver Kit for extended information on how to write a miniport driver. Because full documentation is available in the Windows NT Device Driver Kit, the documentation for the Windows CE Device Driver Kit does not discuss at length the process of writing miniport drivers. Miniport drivers are complex pieces of software, and for this reason Microsoft recommends that you adapt one of the sample miniport drivers or port an existing miniport driver from another operating system, such as Windows NT, rather than writing one from scratch.

The Windows CE Platform Builder includes the following sample miniport drivers:

For a complete list of the NDIS API supported on Windows CE, including information on the minor differences between the Windows CE API and its Windows NT counterpart, consult the Reference.