共用方式為


QueuedSpinLock 規則 (wdm)

QueuedSpinLock 規則會指定驅動程式在呼叫 KeReleaseInStackQueuedSpinLock 之前先呼叫 KeAcquireInStackQueuedSpinLock,而驅動程式會在任何後續呼叫 KeAcquireInStackQueuedSpinLock 之前呼叫 KeReleaseInStackQueuedSpinLock

如果巢狀呼叫正在取得和釋放不同的資源,則允許呼叫。 取得或釋放相同資源的巢狀呼叫違反此規則。

此規則也會指定驅動程式已呼叫 KeReleaseInStackQueuedSpinLock ,以釋放分派例程或取消例程結束之前的所有佇列微調鎖定。

驅動程式模型:WDM

此規則找到的錯誤檢查 () :錯誤檢查0xC4:DRIVER_VERIFIER_DETECTED_VIOLATION (0x00040006)

測試方法

在編譯時期

執行 靜態驅動程式驗證器 並指定 QueuedSpinLock 規則。

使用下列步驟來執行程式碼的分析:
  1. 準備程式代碼 (使用角色類型宣告) 。
  2. 執行靜態驅動程式驗證程式。
  3. 檢視和分析結果。

如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵

运行时

執行 驅動程式驗證器 ,然後選取 [DDI 合規性檢查 ] 選項。

適用於

KeAcquireInStackQueuedSpinLockKeReleaseInStackQueuedSpinLock