Compartir a través de


Conjunto de reglas 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 el funcionamiento que pueden provocar condiciones de interbloqueo o bloqueos del equipo.

En esta sección

Tema Descripción

Flags_Irql

La regla de Flags_Irql especifica que no se debe llamar a KeGetCurrentIrql dentro de las funciones de devolución de llamada que tienen un parámetro de marca de nivel de distribución que indica el IRQL actual.

El uso correcto de la marca de nivel de envío puede ayudarle a evitar intentos innecesarios de establecer irQL. Para obtener más información sobre cómo usar esta marca, vea Dispatch IRQL Tracking.

Irql_CallManager_Function

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

Irql_Connection_Function

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

Irql_Filter_Driver_Function

La regla de Irql_Filter_Driver_Function especifica que se deben llamar a las funciones NDIS para los controladores de filtro en los niveles irQL correctos.

Irql_Gather_DMA_Function

La regla de Irql_Gather_DMA_Function especifica que se deben llamar a las funciones de dispersión o recopilación de DMA de NDIS en los niveles de IRQL correctos.

Irql_IM_Function

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

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 de Irql_IrqlSetting_Function especifica que se debe llamar a las macros de interrupción NDIS en los niveles irQL correctos.

Irql_MCM_Function

La regla de Irql_MCM_Function especifica que se deben llamar a las funciones MCM de NDIS para los controladores en los niveles irQL correctos.

Irql_MCO_Function

La regla de Irql_MCO_Function especifica que se deben llamar a los DDIS MCO de NDIS para los controladores de miniporte en los niveles irQL correctos.

Irql_Miniport_Driver_Function

La regla de Irql_Miniport_Driver_Function especifica que se deben llamar a las funciones NDIS para los controladores de miniporte 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 de Irql_NetBuffer_Function especifica que se debe llamar a las funciones relacionadas con el NET_BUFFER en los niveles irQL correctos.

Irql_OID_Function

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

Irql_Protocol_Driver_Function

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

Irql_SendRcv_Function

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

Irql_StatusIndication_Function

La regla de Irql_StatusIndication_Function especifica que se deben llamar a las funciones de indicación de estado NDIS para los controladores de miniporte y filtro en los niveles IRQL correctos.

Irql_Synch_Function

La regla de Irql_Synch_Function especifica que las DDIs de interrupción y sincronización de NDIS deben llamarse 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 el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores 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 comprobadores de controladores estáticos (MSBuild).