A.3 Full NIC Driver Operations
This section describes full NIC drivers that comply with NDIS 3.0. If you are providing a network driver, it is not necessary for you to write a full NIC driver because the current version of Windows NT supports an NDIS 3.0 miniport NIC driver. It is recommended that you provide a miniport driver instead of the full NIC driver to save time. You can develop fewer routines in your miniport driver because there is more support for common routines in the NDIS interface library.
The NDIS library maintains a descriptor block for each NIC driver or transport driver that registers itself on a network. Depending on the type of driver, the descriptor block contains the addresses of the NIC driver upper-edge functions or the transport driver lower-edge functions. With the exception of interrupt service routines and media access control synchronization functions, NIC driver processing occurs at or below the IRQL DISPATCH_LEVEL. This chapter describes the main operations involved, which are:
·Initializing wrapper and registering drivers.
·Registering a network interface card.
·Opening a network interface card.
·Sending data.
·Indicating and transferring received data.
·Indicating status.
·Querying and setting NIC driver capabilities (per binding).
·Querying global statistics (per network interface card).
·Closing a network interface card.
·Resetting a network interface card.
·Removing a network interface card.
·Unloading and deregistering drivers and terminating wrapper.
For help in following the descriptions, refer to the Network Driver Reference. Chapter 1 of the reference defines the upper-edge NIC driver functions; Chapter 2 defines the NDIS library functions; Part I, Chapter 4 details NDIS 3.0 OIDs; Chapter 5 defines NDIS 3.0 status codes; and Chapter 6 describes structures and enumerations used by NIC drivers.