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 微調鎖定的詳細資訊,請參閱網路驅動程式中的 同步處理和通知。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 支援 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisAcquireSpinLock (NDIS 5.1)。 支援 Windows XP 中的 NDIS 5.1 驅動程式(請參閱 NdisAcquireSpinLock (NDIS 5.1)。 |
目標平臺 | 普遍 |
標頭 | ndis.h (包括 Ndis.h) |
連結庫 | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 合規性規則 | Irql_Synch_Function(ndis),SpinLock(ndis),SpinLockBalanced(ndis),SpinLockDpr(ndis),SpinLockDprRelease(ndis),SpinlockRelease(ndis) |