Conjunto de regras de aviso (WDM)
Use essas regras para verificar se o driver pode processar corretamente os IRPs em vários contextos e segue as melhores práticas recomendadas da Microsoft.
Nesta seção
Tópico | Descrição |
---|---|
A regra CheckDeviceObjectFlags especifica que um motorista de barramento deve marcar que os sinalizadores de objeto do dispositivo para DO_POWER_PAGABLE e DO_POWER_INRUSH sejam definidos consistentemente para o FDO e os PDOs filho. Essa regra só se aplica aos motoristas de ônibus. |
|
A regra CompletionEventChecking especifica que um driver não chama IoMarkIrpPending e KeSetEvent em uma rotina de conclusão para o mesmo IRP. |
|
A regra DeleteDevice especifica que os drivers não devem depender do Gerenciador de E/S ou do Gerenciador de PnP para manter o DeviceObject ativo após uma chamada para IoDeleteDevice. |
|
A regra MultRemoveLock verifica se IoAcquireRemoveLock é chamado com apenas um Remove Lock exclusivo. Essa é uma regra de aviso. |
|
A regra PagedCode especifica que o driver chama a macro PAGED_CODE somente quando está em execução em IRQL <= APC_LEVEL. |
|
A regra PagedCodeAtPowerTrans especifica que um driver não deve chamar PAGED_CODE ao responder a um irp (IRP_MN_SET_POWER) de IRP_MJ_POWER do sistema e a um dispositivo IRP_MJ_POWER Irp (IRP_MN_SET_POWER). |
|
A regra ReservedDDIs verifica se os drivers não chamam nenhuma função reservada. |
Para selecionar o conjunto de regras de aviso
Selecione seu projeto de driver (.vcxProj) no Microsoft Visual Studio. No menu Driver , clique em Iniciar Verificador de Driver Estático....
Clique na guia Regras . Em Conjuntos de Regras, selecione Aviso.
Para selecionar o conjunto de regras padrão em uma janela do prompt de comando do desenvolvedor do Visual Studio, especifique Warning.sdv com a opção /marcar. Por exemplo:
msbuild /t:sdv /p:Inputs="/check:Warning.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obter mais informações, consulte Using Static Driver Verifier to Find Defects in Drivers and Static Driver Verifier commands (MSBuild).