Partilhar via


Conjunto de regras IRQL (Storport)

Use essas regras para verificar se o driver faz chamadas DDI no IRQL necessário.

Um driver que não segue as regras do IRQL pode causar sérios problemas durante a operação que podem levar a condições de deadlock ou falhas no computador.

Nesta seção

Tópico Descrição

IrqlDispatch

Essa regra verifica se as rotinas a seguir são chamadas apenas em IRQL = DISPATCH_LEVEL.

IrqlKeReleaseSpinLock

Essa regra verifica se KeReleaseSpinLock é chamado em IRQL = somente DISPATCH_LEVEL . Ele também deve definir o IRQL para o nível IRQL anterior. Normalmente, essa chamada seria precedida por uma chamada para KeAcquireSpinLock.

SpChangeIrql

Essa regra verifica se as rotinas de retorno de chamada do StorPort retornam no mesmo nível IRQL que o nível no qual são chamadas.

SpIrql

Essa regra verifica se as rotinas TdiRegisterPnPHandlers e TdiDeregisterPnPnPHandlers só são chamadas em IRQL inferiores a DISPATCH_LEVEL. No entanto, se ExFreeToNPagedLookasideList for chamado, a regra será aprovada.

StorPortIrql

A regra StorPortIrql verifica se as rotinas do StorPort são chamadas nos níveis IRQL corretos.

Para selecionar o conjunto de regras Irql

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

    Para selecionar o conjunto de regras padrão em uma janela do prompt de comando do desenvolvedor do Visual Studio, especifique Irql.sdv com a opção /marcar. Por exemplo:

    msbuild /t:sdv /p:Inputs="/check:Irql.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).