共用方式為


Storport) (IRQL 規則集

使用這些規則來確認驅動程式在必要的 IRQL 上進行 DDI 呼叫。

未遵循 IRQL 規則的驅動程式可能會導致作業期間發生嚴重問題,而導致死結狀況或電腦當機。

本節內容

主題 描述

IrqlDispatch

此規則會確認下列例程只在 IRQL = DISPATCH_LEVEL呼叫。

IrqlKeReleaseSpinLock

此規則會確認 KeReleaseSpinLock 只在 IRQL = DISPATCH_LEVEL 呼叫。 它也必須將 IRQL 設定為先前的 IRQL 層級。 此呼叫通常會在呼叫 KeAcquireSpinLock 之前。

SpChangeIrql

此規則會驗證 StorPort 回呼例程傳回的 IRQL 層級與呼叫它們的層級相同。

SpIrql

此規則會確認例程 TdiRegisterPnPHandlersTdiDeregisterPnPHandlers 只在 IRQL 低於 DISPATCH_LEVEL 呼叫。 不過,如果呼叫 ExFreeToNPagedLo一sideList ,規則就會通過。

StorPortIrql

StorPortIrql 規則會檢查在正確的 IRQL 層級呼叫 StorPort 例程。

若要選取 Irql 規則集

  1. 在 Microsoft Visual Studio 中選取您的驅動程式專案 (.vcxProj) 。 從 [ 驅動程式] 功能表中,按兩下 [ 啟動靜態驅動程序驗證程式...]。

  2. 按兩下 [ 規則] 索引 標籤。在 [規則集] 底下,選取 [Irql]。

    若要從 Visual Studio 開發人員命令提示字元視窗中選取預設規則集,請使用 /check 選項指定 Irql.sdv。 例如:

    msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    如需詳細資訊,請參閱 使用靜態驅動程式驗證器在驅動程式靜態驅動程式驗證器命令中尋找瑕疵, (MSBuild)