A.4 Writing a Full NIC Driver

This chapter describes full NIC drivers that comply with NDIS 3.0. If you are providing a NIC driver, it is not necessary to write a full NIC driver because the current version of Windows NT® supports miniport NIC drivers. It is recommended that you provide a miniport driver instead of the full NIC driver to save time. Fewer routines need to be developed in a miniport driver because there is more support for common routines in the NDIS library.

The current DDK only contains sample miniport NIC drivers. Samples of full NIC drivers are only available as part of the older Windows NT 3.1 DDK.

The Windows NT 3.1 DDK contains several sample full NIC drivers for use in developing your own driver. Although requirements vary depending on the network interface card the NIC driver controls, many basic functions (such as initialization, sending data, receiving data, interrupt handling, and deactivation) are common to all full NIC drivers. Writing a NIC driver from scratch can be very difficult and time-consuming. By modifying an existing driver you can take advantage of the development effort invested in a working product. Most of your programming endeavor can then be spent in code modifications instead of full-scale development.

This chapter examines a full NIC driver for a SONIC Ethernet chip in detail and offers suggestions for adapting the code to your network interface card. It includes some general programming considerations to note before you begin. The 3.1 DDK Release Notes provide building and loading instructions to accompany these details of sample code modification.