Compartir a través de


Conjunto de reglas de IRQL (NDIS)

Use estas reglas para comprobar que el controlador realiza llamadas DDI en el IRQL necesario.

Un controlador que no sigue las reglas IRQL puede causar problemas graves durante la operación que pueden provocar problemas de interbloqueo o bloqueos de equipo.

En esta sección

Tema Descripción

Flags_Irql

La regla Flags_Irql especifica que no se debe llamar a KeGetCurrentIrql dentro de las funciones de devolución de llamada que tengan un parámetro indicador de nivel de despacho que indique el IRQL actual.

El uso correcto del indicador de nivel de despacho puede ayudarle a evitar intentos innecesarios de modificar el IRQL. Para obtener más información sobre cómo usar esta marca, vea Dispatch IRQL Tracking.

Irql_CallManager_Function

La regla Irql_CallManager_Function especifica que las funciones NDIS para el CallManager NDIS deben llamarse en los niveles IRQL correctos.

Irql_Connection_Function

La regla Irql_Connection_Function especifica que las funciones de conexión NDIS para los controladores de protocolo se deben llamar en los niveles de IRQL correctos.

Irql_Filter_Driver_Function

Las funciones NDIS para los controladores de filtro deben ser llamadas en los niveles IRQL correctos, según especifica la regla de Irql_Filter_Driver_Function.

Irql_Gather_DMA_Function

La regla de Irql_Gather_DMA_Function especifica que las funciones DMA scatter/gather de NDIS deben ser invocadas en los niveles de IRQL correctos.

Irql_IM_Function

La regla Irql_IM_Function especifica que se deben llamar a las funciones NDIS para los controladores intermedios (IM) en los niveles correctos de IRQL.

Irql_Interfaces_Function

La regla de Irql_Interfaces_Function especifica que se deben llamar a las funciones de interfaz de red NDIS en los niveles IRQL correctos.

Irql_Interrupt_Function

La regla de Irql_Interrupt_Function especifica que se deben llamar a las funciones NDIS para las interrupciones en los niveles IRQL correctos.

Irql_IrqlSetting_Function

La regla Irql_IrqlSetting_Function especifica que las macros de interrupción de NDIS deben ser llamadas a los niveles de IRQL correctos.

Irql_MCM_Function

La regla Irql_MCM_Function especifica que las funciones MCM de NDIS para controladores deben llamarse en los niveles IRQL correctos.

Irql_MCO_Function

La regla Irql_MCO_Function especifica que los DDIs de MCO de NDIS para los controladores de miniport deben llamarse en los niveles IRQL correctos.

Irql_Miniport_Driver_Function

La regla de Irql_Miniport_Driver_Function especifica que las funciones NDIS para controladores de minipuertos deben llamarse en los niveles IRQL correctos.

Irql_Miscellaneous_Function

La regla de Irql_Miscellaneous_Function especifica que se debe llamar a las funciones NDIS en los niveles IRQL correctos.

Irql_NetBuffer_Function

La regla Irql_NetBuffer_Function especifica que se debe llamar a las funciones relacionadas con el NET_BUFFER en los niveles de IRQL correctos.

Irql_OID_Function

La regla Irql_OID_Function especifica que se deben llamar a los DDIs de solicitud OID NDIS en los niveles de IRQL correctos.

Irql_Protocol_Driver_Function

La regla de Irql_Protocol_Driver_Function especifica que las funciones de NDIS para los clientes de CoNDIS deben llamarse en los niveles IRQL correctos.

Irql_SendRcv_Function

La regla Irql_SendRcv_Function especifica que se deben llamar a las funciones de envío y recepción para los controladores NDIS en los niveles de IRQL correctos.

Irql_StatusIndication_Function

La regla Irql_StatusIndication_Function especifica que las funciones de indicación de estado de NDIS para los controladores miniport y filtro deben ser llamadas en los niveles correctos de IRQL.

Irql_Synch_Function

La regla de Irql_Synch_Function especifica que se debe llamar a los DDIs de interrupción y sincronización de NDIS en los niveles de IRQL correctos.

Irql_Timer_Function

La regla de Irql_Timer_Function especifica que se deben llamar a las funciones del servicio de temporizador NDIS en los niveles de IRQL correctos.

Para seleccionar el conjunto de reglas irql

  1. Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....

  2. Haga clic en la pestaña Reglas . En Conjuntos de reglas, seleccione Irql.

    Para seleccionar las reglas predeterminadas en una ventana de comando de desarrollador de Visual Studio, especifique Irql.sdv con la opción /check. Por ejemplo:

    msbuild /t:sdv /p:Inputs="/check:Irql.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
    

    Para obtener más información, consulte Uso del comprobador de controladores estáticos para buscar defectos en controladores y comandos de comprobador de controladores estáticos (MSBuild).