NDIS interface library spin lock functions are described in Table A.2.A.2. These functions deal with initialization, acquisition, release, and freeing of spin locks. In a multiprocessor environment, they address both interprocessor and intraprocessor synchronization at the same time. For a uniprocessor environment, the functions are optimized to ignore interprocessor synchronization. Spin lock functions use executive spin locks; therefore the NIC driver cannot call them if it is running above the IRQL DISPATCH_LEVEL within MacInterruptServiceRoutine or NdisSynchronizeWithInterrupt.
Table A.2.14 Spin Lock Functions
Function |
Definition |
Acquires an NDIS interface library spin lock to give the driver exclusive use of resources that the spin lock protects. | |
Initializes an NDIS interface library spin lock, setting it to the released state. | |
Called by MacDeferredProcessingRoutine to acquire a spin lock. | |
Releases a spin lock the DPR has acquired by calling NdisDprAcquireSpinLock. | |
Frees a structure that NdisAllocateSpinLock has allocated as an NDIS interface library spin lock. | |
Releases an acquired spin lock so that other executing threads can use resources that it protects. |