Compartir a través de


Conjunto de reglas de advertencia (WDM)

Use estas reglas para comprobar que el controlador puede procesar correctamente los IRP en varios contextos y sigue los procedimientos recomendados de Microsoft.

En esta sección

Tema Descripción

CheckDeviceObjectFlags

La regla CheckDeviceObjectFlags especifica que un controlador de bus debe comprobar que las marcas de objeto de dispositivo para DO_POWER_PAGABLE y DO_POWER_INRUSH se establecen de forma coherente para el FDO y los PPO secundarios. Esta regla solo se aplica a los conductores de autobús.

CompletionEventChecking

La regla CompletionEventChecking especifica que un controlador no llama a IoMarkIrpPending y KeSetEvent en una rutina de finalización para el mismo IRP.

DeleteDevice

La regla DeleteDevice especifica que los controladores no deben confiar en el Administrador de E/S o en el Administrador de PnP para mantener el DeviceObject activo después de una llamada a IoDeleteDevice.

MultRemoveLock

La regla MultRemoveLock comprueba que se llama a IoAcquireRemoveLock solo con un bloqueo remove único. Se trata de una regla de advertencia.

PagedCode

La regla PagedCode especifica que el controlador llama a la macro PAGED_CODE solo cuando se ejecuta en IRQL <= APC_LEVEL.

PagedCodeAtPowerTrans

La regla PagedCodeAtPowerTrans especifica que un controlador no debe llamar a PAGED_CODE al responder a un IRP_MJ_POWER irp (IRP_MN_SET_POWER) del sistema y a un dispositivo IRP_MJ_POWER Irp (IRP_MN_SET_POWER).

ReservedDDIs

La regla ReservedDDIs comprueba que los controladores no llaman a ninguna función reservada.

Para seleccionar el conjunto de reglas de advertencia

  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 Advertencia.

    Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique Warning.sdv con la opción /check . Por ejemplo:

    msbuild /t:sdv /p:Inputs="/check:Warning.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).