NdisAcquireSpinLock 宏 (ndis.h)
NdisAcquireSpinLock 函式會取得微調鎖定,讓呼叫端能夠獨佔存取驅動程式函式之間共用的資源,讓微調鎖定受到保護。
語法
void NdisAcquireSpinLock(
[in] _SpinLock
);
參數
[in] _SpinLock
呼叫端已初始化之不透明微調鎖定的指標。
傳回值
無
備註
驅動程式必須先使用 NdisAllocateSpinLock 初始化類型NDIS_SPIN_LOCK變數,才能呼叫任何其他 NdisXxxSpinLock 函式。 驅動程式必須為其使用的微調鎖定 () 提供駐留記憶體。
使用 NdisAcquireSpinLock 取得微調鎖定之後,呼叫端必須釋放該鎖定與 NdisReleaseSpinLock 的呼叫。 驅動程式必須在每次呼叫 NdisAcquireSpinLock 之後呼叫 NdisReleaseSpinLock。 否則,就會發生死結,並讓驅動程式停止回應。
使用 NdisAcquireSpinLock 取得的微調鎖定必須使用 NdisReleaseSpinLock 釋放。 使用 NdisDprAcquireSpinLock 取得的微調鎖定必須使用 NdisDprReleaseSpinLock 釋放。
驅動程式一律不應該長時間保留微調鎖定, (一些以上的指示) 。 按住微調鎖定超過 25 毫秒會降低系統和驅動程式效能。
迷你埠驅動程序無法使用微調鎖定來保護其其他函式與 MiniportInterrupt 和/或共用的資源 MiniportDisableInterruptEx 函 式。 相反地,迷你埠驅動程序必須呼叫 NdisMSynchronizeWithInterruptEx ,使其 MiniportSynchronizeInterrupt 函式會在其所在的相同 DIRQL 存取這類共用資源
MiniportInterrupt 和/或 MiniportDisableInterruptEx 函 式會執行。
如需取得和釋放 NDIS 微調鎖定的詳細資訊,請參閱 網路驅動程式中的同步處理和通知。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | (支援 NDIS 6.0 和 NDIS 5.1 驅動程式,請參閱 Windows Vista 中的 NdisAcquireSpinLock (NDIS 5.1) ) 。 (支援 NDIS 5.1 驅動程式,請參閱 Windows XP 中的 NdisAcquireSpinLock (NDIS 5.1) ) 。 |
目標平台 | Universal |
標頭 | ndis.h (包含 Ndis.h) |
程式庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Synch_Function (ndis) 、SpinLock (ndis) 、SpinLockBalanced (ndis ) 、SpinLockDpr (ndis) 、SpinLockDprRelease (ndis) 、SpinlockRelease (ndis) |