IRQL の規則セット (KMDF)
これらのルールを使用して、ドライバーが必要な IRQL で DDI 呼び出しを行っているかを検証します。
IRQL ルールに従わないドライバーは、操作中に重大な問題を引き起こす可能性があり、デッドロック状態やコンピューターのクラッシュにつながる可能性があります。
このセクションの内容
裁判官 | 説明 |
---|---|
KmdfIrql ルールは、そのメソッドの最大 IRQL 以下の IRQL で、ドライバーがフレームワーク メソッドを呼び出すように指定します。 |
|
KmdfIrql2 ルールは、そのメソッドの最大 IRQL 以下の IRQL で、ドライバーがフレームワーク メソッドを呼び出すように指定します。 |
|
UsbKmdfIrql ルールは、正しくない IRQL レベルで KMDF ドライバーが USB 固有のデバイス ドライバー インターフェイス (DDI) を呼び出さないように指定します。 |
|
UsbKmdfIrql2 ルールは、KMDF ドライバーが不適切な IRQL レベルで USB 固有の DDI を呼び出さないように指定します。 |
|
UsbKmdfIrqlExplicit ルールは、KMDF DDI が正しい IRQL レベルで呼び出されているかを検証します。 このルールは、すべての EvtIoCallback 関数に適用されます。 |
|
WdfRequestSendSyncAtDispatch ルールは、WdfRequestSend 関数が正しい IRQL の優先度レベルで送信されるかを検証します。 |
|
WdfRequestSendSyncAtDispatch2 ルールは、WdfRequestSend 関数が正しい IRQL の優先度レベルで送信されるかを検証します。 |
Irql ルール セットを選択するには
Microsoft Visual Studio でドライバー プロジェクト (.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)」を参照してください。