Partilhar via


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

CheckDeviceObjectFlags

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.

CompletionEventChecking

A regra CompletionEventChecking especifica que um driver não chama IoMarkIrpPending e KeSetEvent em uma rotina de conclusão para o mesmo IRP.

DeleteDevice

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.

MultRemoveLock

A regra MultRemoveLock verifica se IoAcquireRemoveLock é chamado com apenas um Remove Lock exclusivo. Essa é uma regra de aviso.

PagedCode

A regra PagedCode especifica que o driver chama a macro PAGED_CODE somente quando está em execução em IRQL <= APC_LEVEL.

PagedCodeAtPowerTrans

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

ReservedDDIs

A regra ReservedDDIs verifica se os drivers não chamam nenhuma função reservada.

Para selecionar o conjunto de regras de aviso

  1. Selecione seu projeto de driver (.vcxProj) no Microsoft Visual Studio. No menu Driver , clique em Iniciar Verificador de Driver Estático....

  2. 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).