IRQL の規則セット (NDIS)
これらのルールを使用して、ドライバーが必要な IRQL で DDI 呼び出しを行っているかを検証します。
IRQL ルールに従わないドライバーは、操作中に重大な問題を引き起こす可能性があり、デッドロック状態やコンピューターのクラッシュにつながる可能性があります。
このセクションの内容
裁判官 | 説明 |
---|---|
Flags_Irql ルールは、現在の IRQL を示すディスパッチ レベル フラグ パラメーターを持つコールバック関数内で KeGetCurrentIrql を呼び出してはならないことを指定します。 ディスパッチ レベル フラグを正しく使用すると、IRQL を設定する不必要な試行を回避するのに役立ちます。 このフラグの使用方法の詳細については、「ディスパッチ IRQL トラッキング」を参照してください。 |
|
Irql_CallManager_Function ルールでは、NDIS CallManager の NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Connection_Function ルールでは、プロトコル ドライバーの NDIS 接続関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Filter_Driver_Function ルールでは、フィルター ドライバーの NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Gather_DMA_Function ルールでは、NDIS スキャッター/ギャザー DMA 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_IM_Function ルールでは、中間 (IM) ドライバーの NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Interfaces_Function ルールでは、NDIS ネットワーク インターフェイス関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Interrupt_Function ルールでは、割り込みの NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_IrqlSetting_Function ルールでは、NDIS 割り込みマクロを正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_MCM_Function ルールでは、ドライバーの NDIS MCM 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_MCM_Function ルールでは、ドライバーの NDIS MCM 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Miniport_Driver_Function ルールでは、ミニポート ドライバーの NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Miscellaneous_Function ルールでは、NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_NetBuffer_Function ルールでは、NET_BUFFER に関連する関数を NET_BUFFER IRQL レベルで呼び出す必要があります。 |
|
Irql_OID_Function ルールでは、NDIS OID 要求 DDI を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Protocol_Driver_Function ルールでは、CoNDIS の NDIS 関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_SendRcv_Function ルールでは、NDIS ドライバーの送受信関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_StatusIndication_Function ルールでは、ミニポート ドライバーとフィルター ドライバーの NDIS 状態表示関数を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Synch_Function ルールでは、NDIS 割り込みおよび同期 DDIS を正しい IRQL レベルで呼び出す必要があります。 |
|
Irql_Timer_Function ルールでは、NDIS タイマー サービス関数を正しい 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)」を参照してください。