Conjunto de reglas varios (WDM)
Use estas reglas para comprobar que el controlador sigue correctamente un conjunto general de requisitos para el control adecuado de las claves del Registro, las cadenas y los punteros de objeto de dispositivo.
En esta sección
Tema | Descripción |
---|---|
La regla AddDevice especifica que la rutina AddDevice del controlador llama a IoAttachDeviceToDeviceStack solo después de llamar a IoCreateDevice. |
|
La regla DanglingDeviceObjectReference especifica que el controlador llama a ObDereferenceObject con el mismo puntero de objeto de dispositivo que devuelve IoGetAttachedDeviceReference . |
|
La regla PnpSameDeviceObject especifica que el controlador llama a IoAttachDeviceToDeviceStack con un puntero a un objeto de dispositivo de destino válido. |
|
La regla TargetRelationNeedsRef especifica que, al procesar una consulta TargetDeviceRelation , la rutina DispatchPnP del controlador llama a una de las siguientes funciones para hacer referencia al PDO del dispositivo secundario: |
|
UnSafeAllocatePool es una regla de seguridad importante que comprueba que un controlador no usa DDIs en desuso para asignar memoria. |
|
La regla ZwRegistryCreate especifica que, después de llamar a ZwCreateKey, el controlador solo puede llamar a las siguientes funciones del Registro mientras mantiene un identificador abierto en la clave del Registro (es decir, antes de que cualquier llamada a ZwClose o ZwDeleteKey cierre o elimine el identificador de la clave del Registro): |
|
La regla ZwRegistryOpen especifica que, después de llamar a ZwOpenKey, el controlador llama a las siguientes funciones del Registro solo mientras mantiene un identificador abierto en una clave del Registro (es decir, antes de llamar a ZwClose o ZwDeleteKey): |
Para seleccionar el conjunto de reglas varios
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 Varios.
Para seleccionar el conjunto de reglas predeterminado en una ventana del símbolo del sistema para desarrolladores de Visual Studio, especifique Miscellaneous.sdv con la opción /check . Por ejemplo:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.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).