使用這些規則來確認您的驅動程式在必要的 IRQL 上進行 DDI 呼叫。
未遵循 IRQL 規則的驅動程式可能會導致作業期間發生嚴重問題,而導致死結狀況或電腦當機。
本節中
| 主題 | 說明 |
|---|---|
此規則會確認下列常式只會在 IRQL = DISPATCH_LEVEL 呼叫。 |
|
此規則會確認 KeReleaseSpinLock 只會在 IRQL = DISPATCH_LEVEL 呼叫。 它也必須將 IRQL 設定為先前的 IRQL 層級。 一般而言,此呼叫之前會呼叫 KeAcquireSpinLock。 |
|
此規則會檢查 StorPort 回呼例程是否回復到與呼叫時相同的 IRQL 層級。 |
|
此規則會確認常式 TdiRegisterPnPHandlers 和 TdiDeregisterPnPHandlers 只會在低於 DISPATCH_LEVEL 的 IRQL 呼叫。 不過,如果呼叫 ExFreeToNPagedLookasideList,則規則會通過。 |
|
StorPortIrql 規則會檢查 StorPort 常式是否在正確的 IRQL 層級呼叫。 |
若要選取 Irql 規則集
在 Visual Studio Microsoft中選取您的驅動程式專案 (.vcxProj)。 從 驅動程式 選單中,點擊 啟動靜態驅動程式驗證程式…。
按兩下 [ 規則] 索引標籤。在 [規則集] 底下,選取 [Irql]。
若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 Irql.sdv。 例如:
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32如需詳細資訊,請參閱 使用靜態驅動程式驗證器尋找驅動程式中的瑕疵 和 靜態驅動程式驗證器命令(MSBuild)。