A.1.1  NIC Driver Design Goals

An NDIS 3.0 NIC driver must meet the following requirements:

·Portability. The NIC driver needs to be able to call NDIS interface library portability functions that allow it to run on both x86 and RISC-based platforms.

·Multiprocessor Support. The NIC driver must provide multiprocessor support.

·Functional Requirements. The NIC driver must be able to register itself with the NDIS interface library; create and delete bindings between transport drivers and network interface cards; allocate, initialize, manipulate, inspect, and deallocate packet descriptors; and make requests for Windows NT functions.

·Spin Lock Use. The full NIC driver needs to use spin locks to synchronize its activities in uniprocessor and multiprocessor systems for safe access to shared data structures, such as packet descriptors.