次の方法で共有


IRQL の規則セット (KMDF)

これらのルールを使用して、ドライバーが必要な IRQL で DDI 呼び出しを行っているかを検証します。

IRQL ルールに従わないドライバーは、操作中に重大な問題を引き起こす可能性があり、デッドロック状態やコンピューターのクラッシュにつながる可能性があります。

このセクションの内容

裁判官 説明

KmdfIrql

KmdfIrql ルールは、そのメソッドの最大 IRQL 以下の IRQL で、ドライバーがフレームワーク メソッドを呼び出すように指定します。

KmdfIrql2

KmdfIrql2 ルールは、そのメソッドの最大 IRQL 以下の IRQL で、ドライバーがフレームワーク メソッドを呼び出すように指定します。

UsbKmdfIrql

UsbKmdfIrql ルールは、正しくない IRQL レベルで KMDF ドライバーが USB 固有のデバイス ドライバー インターフェイス (DDI) を呼び出さないように指定します。

UsbKmdfIrql2

UsbKmdfIrql2 ルールは、KMDF ドライバーが不適切な IRQL レベルで USB 固有の DDI を呼び出さないように指定します。

UsbKmdfIrqlExplicit

UsbKmdfIrqlExplicit ルールは、KMDF DDI が正しい IRQL レベルで呼び出されているかを検証します。 このルールは、すべての EvtIoCallback 関数に適用されます。

WdfRequestSendSyncAtDispatch

WdfRequestSendSyncAtDispatch ルールは、WdfRequestSend 関数が正しい IRQL の優先度レベルで送信されるかを検証します。

WdfRequestSendSyncAtDispatch2

WdfRequestSendSyncAtDispatch2 ルールは、WdfRequestSend 関数が正しい IRQL の優先度レベルで送信されるかを検証します。

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)」を参照してください。