C28167
aviso C28167: a função altera o IRQL e não restaura o IRQL antes de ser encerrado. Ele 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á em execução.
Há pelo menos um caminho por meio de uma função que, por saída da funçã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 do IRQL e restaurar o mesmo valor IRQL na saída da função se ele não pretende alterar o IRQL.
As funções que alteram intencionalmente o IRQL para um valor diferente do IRQL no qual o driver estava em execução 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.