共用方式為


NdisDprAcquireSpinLock 巨集 (ndis.h)

NdisDprAcquireSpinLock 函式會取得微調鎖定,讓呼叫端可以透過多處理器安全的方式同步處理非 ISR 驅動程式函式之間共用的資源存取。

語法

void NdisDprAcquireSpinLock(
  [in]  _SpinLock
);

參數

[in] _SpinLock

已由呼叫端初始化之不透明微調鎖定的指標。

傳回值

沒有

言論

迷你埠驅動程序必須在呼叫任何其他 Ndis 之前,使用 NdisAllocateSpinLock 初始化 類型變數NDIS_SPIN_LOCK。SpinLock 函式。 驅動程式必須為其使用的微調鎖定提供常駐記憶體。

NdisDprAcquireSpinLock 是優化版本的 NdisAcquireSpinLock,迷你埠驅動程式只能在 IRQL = DISPATCH_LEVEL執行時呼叫。

使用 NdisDprAcquireSpinLock取得微調鎖定之後,呼叫端必須釋放鎖定,並呼叫 NdisDprReleaseSpinLock。 迷你埠驅動程序必須在每次呼叫 NdisDprDprReleaseSpinLock 之後呼叫NdisDprReleaseSpinLock。 否則,就會發生死結,將驅動程式掛上。

使用 NdisDprAcquireSpinLock 取得的微調鎖定,必須使用 NdisDprReleaseSpinLock發行。 使用 NdisAcquireSpinLock 取得的微調鎖定,必須使用 NdisReleaseSpinLock發行。

驅動程式不應該長時間保留微調鎖定(不止一些指示)。 按住微調鎖定超過 25 微秒會降低系統和驅動程式效能。

迷你埠驅動程式無法使用微調鎖定來保護其其他函式與 MiniportInterrupt 共用的資源 和/或 MiniportDisableInterruptEx 函式。 相反地,迷你埠驅動程序必須呼叫 NdisMSynchronizeWithInterruptEx 使其 MiniportSynchronizeInterrupt 函式會在其所在的相同 DIRQL 存取這類共用資源
MiniportInterrupt 和/或 MiniportDisableInterruptEx 函式會執行。

如需取得和釋放 NDIS 微調鎖定的詳細資訊,請參閱網路驅動程式中的 同步處理和通知

要求

要求 價值
最低支援的用戶端 Windows Vista 中支援 NDIS 6.0 和 NDIS 5.1 驅動程式(請參閱 NdisDprAcquireSpinLock (NDIS 5.1)。 支援 NDIS 5.1 驅動程式(請參閱 Windows XP 中的 NdisDprAcquireSpinLock (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)

另請參閱

MiniportDisableInterruptEx

MiniportInterrupt

MiniportSynchronizeInterrupt

NdisAcquireSpinLock

NdisAllocateSpinLock

NdisDprReleaseSpinLock

NdisMSynchronizeWithInterruptEx

NetTimerCallback