共用方式為


SpinLockSafe 規則 (wdm)

SpinLockSafe 規則指定在按住微調鎖定時,不會呼叫 IoStartNextPacketIoCompleteRequest

此規則也會指定驅動程式先呼叫 KeAcquireSpinLockKeAcquireSpinLockAtDpcLevel,再呼叫 KeReleaseSpinLockFromDpcLevelKeReleaseSpinLock,並在呼叫 IoReleaseCancelSpinLock 之前先呼叫 IoAcquireCancelSpinLock

如果驅動程式包含巢狀 SpinLocks,靜態驅動程式驗證器可以報告此規則的誤判違規,即使取得並正確釋放這些微調鎖定也一樣。

驅動程式模型:WDM

測試方法

在編譯時期

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

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

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

適用於

IoAcquireCancelSpinLockIoCompleteRequestIoReleaseCancelSpinLockIoStartNextPacketKeAcquireSpinLockKeAcquireSpinLockRaiseToDpcKeReleaseSpinLock