IRQL ルール セット (Storport)
これらのルールを使用して、ドライバーが必要な 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 ルール セットを選択するには
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)」を参照してください。