Compartir a través de


Conjunto de reglas varios (KMDF)

Use estas reglas para comprobar que el controlador sigue correctamente un conjunto general de requisitos para el control adecuado de objetos de dispositivo, claves y que el controlador no realiza llamadas a DDIs que no son adecuadas para un controlador que no sea PnP o para un controlador que no sea FDO que no sea propietario de la directiva de energía.

En esta sección

Tema Descripción

AccessHardwareKey

La regla AccessHardwareKey especifica que un controlador de bus no debe intentar acceder a la clave de hardware de un dispositivo secundario desde EvtChildListCreateDevice.

AddPdotoStaticChildlist

La regla AddPdotoStaticChildlist especifica que, para un dispositivo PDO, se debe llamar a la función de marco WdfFdoAddStaticChild después de que el controlador llame a WdfPdoInitAllocate y WdfDeviceCreate correctamente.

ChildListConfiguration

La regla ChildListConfiguration especifica que los controladores que admiten La enumeración dinámica deben llamar a WdfFdoInitSetDefaultChildListConfig antes de llamar a la función WdfDeviceCreate .

Cleanup4CtlDeviceRegistered

La regla Cleanup4CtlDeviceRegistered especifica que si un controlador de Plug and Play (PnP) llama a WdfDeviceCreate para el objeto de dispositivo de control, el controlador debe registrar una de las funciones de devolución de llamada de eventos necesarias.

NonFDONotPowerPolicyOwnerAPI

La regla NonFDONotPowerPolicyOwnerAPI especifica que si un controlador que no es FDO no es propietario de una directiva de energía, no se puede llamar a determinadas DDIs.

NonPnPDrvPowerPolicyOwnerAPI

La regla NonPnPDrvPowerPolicyOwnerAPI especifica que los controladores que no son PnP no pueden llamar a determinados DDIs relacionados con la administración de energía.

UnSafeAllocatePool

La regla UnSafeAllocatePool es una regla de seguridad importante que comprueba que un controlador no usa DDIs en desuso para asignar memoria.

Para seleccionar el conjunto de reglas varios

  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 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 comprobadores de controladores estáticos (MSBuild).