IRQL rule set (NDIS)
Use these rules to verify that your driver makes DDI calls at the required IRQL.
A driver that does not follow the IRQL rules can cause serious problems during operation that can lead to deadlock conditions or computer crashes.
In this section
Topic | Description |
---|---|
The Flags_Irql rule specifies that KeGetCurrentIrql must not be called within callback functions that have a dispatch level flag parameter that indicates the current IRQL. The correct use of the dispatch level flag can help you avoid unnecessary attempts to set the IRQL. For more information about how to use this flag, see Dispatch IRQL Tracking. |
|
The Irql_CallManager_Function rule specifies that the NDIS functions for the NDIS CallManager must be called at correct IRQL levels. |
|
The Irql_Connection_Function rule specifies that the NDIS connection functions for protocol drivers must be called at correct IRQL levels. |
|
The Irql_Filter_Driver_Function rule specifies that the NDIS functions for filter drivers must be called at correct IRQL levels. |
|
The Irql_Gather_DMA_Function rule specifies that the NDIS scatter/gather DMA functions must be called at correct IRQL levels. |
|
The Irql_IM_Function rule specifies that the NDIS functions for Intermediate (IM) drivers must be called at correct IRQL levels. |
|
The Irql_Interfaces_Function rule specifies that the NDIS network interface functions must be called at correct IRQL levels. |
|
The Irql_Interrupt_Function rule specifies that the NDIS functions for interrupts must be called at correct IRQL levels. |
|
The Irql_IrqlSetting_Function rule specifies that the NDIS interrupt macros must be called at correct IRQL levels. |
|
The Irql_MCM_Function rule specifies that the NDIS MCM functions for drivers must be called at correct IRQL levels. |
|
The Irql_MCO_Function rule specifies that the NDIS MCO DDIs for miniport drivers must be called at correct IRQL levels. |
|
The Irql_Miniport_Driver_Function rule specifies that the NDIS functions for miniport drivers must be called at correct IRQL levels. |
|
The Irql_Miscellaneous_Function rule specifies that the NDIS functions must be called at correct IRQL levels. |
|
The Irql_NetBuffer_Function rule specifies that the NET_BUFFER-related functions must be called at correct IRQL levels. |
|
The Irql_OID_Function rule specifies that the NDIS OID request DDIs must be called at correct IRQL levels. |
|
The Irql_Protocol_Driver_Function rule specifies that the NDIS functions for CoNDIS clients must be called at correct IRQL levels. |
|
The Irql_SendRcv_Function rule specifies that the send and receive functions for NDIS drivers must be called at correct IRQL levels. |
|
The Irql_StatusIndication_Function rule specifies that the NDIS status indication functions for miniport and filter drivers must be called at correct IRQL levels. |
|
The Irql_Synch_Function rule specifies that the NDIS interrupt and synchronization DDIs must be called at correct IRQL levels. |
|
The Irql_Timer_Function rule specifies that the NDIS timer service functions must be called at correct IRQL levels. |
To select the Irql rule set
Select your driver project (.vcxProj) in Microsoft Visual Studio. From the Driver menu, click Launch Static Driver Verifier….
Click the Rules tab. Under Rule Sets, select Irql.
To select the default rule set from a Visual Studio developer command prompt window, specify Irql.sdv with the /check option. For example:
msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
For more information, see Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).