Conjunto de regras diversos (WDM)
Use essas regras para verificar se o driver segue corretamente um conjunto geral de requisitos para o tratamento adequado de chaves do Registro, cadeias de caracteres e ponteiros de objeto do dispositivo.
Nesta seção
Tópico | Descrição |
---|---|
A regra AddDevice especifica que a rotina AddDevice do driver chama IoAttachDeviceToDeviceStack somente depois de chamar IoCreateDevice. |
|
A regra DanglingDeviceObjectReference especifica que o driver chama ObDereferenceObject com o mesmo ponteiro de objeto de dispositivo que IoGetAttachedDeviceReference retornou. |
|
A regra PnpSameDeviceObject especifica que o driver chama IoAttachDeviceToDeviceStack com um ponteiro para um objeto de dispositivo de destino válido. |
|
A regra TargetRelationNeedsRef especifica que, ao processar uma consulta TargetDeviceRelation , a rotina DispatchPnP do driver chama uma das seguintes funções para fazer referência ao PDO do dispositivo filho: |
|
UnSafeAllocatePool é uma regra de segurança importante que verifica se um driver não está usando DDIs preteridos para alocar memória. |
|
A regra ZwRegistryCreate especifica que, depois de chamar ZwCreateKey, o driver só pode chamar as seguintes funções do Registro enquanto mantém um identificador aberto para a chave do Registro (ou seja, antes de qualquer chamada para ZwClose ou ZwDeleteKey para fechar ou excluir o identificador para a chave do Registro): |
|
A regra ZwRegistryOpen especifica que, depois de chamar ZwOpenKey, o driver chama as seguintes funções do Registro somente enquanto mantém um identificador aberto para uma chave do Registro (ou seja, antes de chamar ZwClose ou ZwDeleteKey): |
Para selecionar o conjunto de regras diversos
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 Diversos.
Para selecionar o conjunto de regras padrão em uma janela do prompt de comando do desenvolvedor do Visual Studio, especifique Miscellaneous.sdv com a opção /marcar. Por exemplo:
msbuild /t:sdv /p:Inputs="/check:Miscellaneous.sdv" mydriver.VcxProj /p:Configuration="Win8 Release" /p:Platform=Win32
Para obter mais informações, consulte Usando o Verificador de Driver Estático para localizar defeitos em drivers e comandos do Verificador de Driver Estático (MSBuild).