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.