Partilhar via


C28167

aviso C28167: A função altera o IRQL e não restaura o IRQL antes que ele saia. Deve ser anotado para refletir a alteração ou o IRQL deve ser restaurado.

Esse aviso indica que as seguintes condições são verdadeiras:

  • A função altera o IRQL no qual o driver está sendo executado.

  • Há pelo menos um caminho através de uma função que, por saída de função, não restaura o IRQL para o IRQL original que o driver estava executando na entrada da função.

Esse aviso ocorre quando uma anotação IRQL em uma função é necessária, mas uma não existe.

Para evitar esse aviso, o driver deve salvar corretamente o valor inicial de IRQL e restaurar o mesmo valor de IRQL na saída da função se não pretendia alterar o IRQL.

As funções que intencionalmente alteram o IRQL para um valor diferente do IRQL no qual o driver estava sendo executado na entrada da função devem ser anotadas para indicar esse comportamento. Por exemplo, você pode usar a anotação _IRQL_raises_(irql) para indicar que a função altera o IRQL do IRQL no qual a função foi chamada. Você também pode salvar e restaurar o valor IRQL e aplicar as anotações correspondentes (_IRQL_saves_, _IRQL_restores_). A anotação suprimirá esse aviso. Para obter mais informações, consulte anotações IRQL para drivers. As funções que alteram o IRQL por engano devem ser corrigidas.