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 |
---|---|
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. |
|
La regla CompletionEventChecking especifica que un controlador no llama a IoMarkIrpPending y KeSetEvent en una rutina de finalización para el mismo IRP. |
|
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. |
|
La regla MultRemoveLock comprueba que se llama a IoAcquireRemoveLock solo con un bloqueo remove único. Se trata de una regla de advertencia. |
|
La regla PagedCode especifica que el controlador llama a la macro PAGED_CODE solo cuando se ejecuta en IRQL <= APC_LEVEL. |
|
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). |
|
La regla ReservedDDIs comprueba que los controladores no llaman a ninguna función reservada. |
Para seleccionar el conjunto de reglas de advertencia
Seleccione el proyecto de controlador (.vcxProj) en Microsoft Visual Studio. En el menú Controlador , haga clic en Iniciar comprobador de controladores estáticos....
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).