Compartilhar via


Conjunto de regras IRQL (Storport)

Use essas regras para verificar se seu driver faz chamadas DDI no IRQL exigido.

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 somente em IRQL = 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 do qual são chamadas.

SpIrql

Essa regra verifica se as rotinas TdiRegisterPnPHandlers e TdiDeregisterPnPHandlers são chamadas apenas 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 especificar o conjunto de regras padrão em uma janela de prompt de comando do desenvolvedor do Visual Studio, use Irql.sdv com a opção /check. 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).