C28144
aviso C28144: dentro de uma rotina de cancelamento, no ponto de saída, o IRQL em Irp-CancelIrql> deve ser o IRQL atual.
Informações adicionais |
O valor não precisa ser restaurado por nenhuma função específica, mas deve ser restaurado antes da saída. O PREfast não pôde determinar se foi restaurado para o valor necessário. |
Quando a rotina Cancelar do driver é encerrada, o valor do membro Irp-CancelIrql> não é o IRQL atual. Normalmente, esse erro ocorre quando o driver não chama IoReleaseCancelSpinLock com o IRQL que foi fornecido pela chamada mais recente para IoAcquireCancelSpinLock.
Para obter mais informações sobre Cancelar rotinas, consulte Cancelando IRPs. Para obter informações específicas a esse aviso, consulte Pontos a serem considerados ao cancelar IRPs.
Exemplo
O exemplo de código a seguir gera esse aviso.
IoReleaseCancelSpinLock(PASSIVE_LEVEL);
O exemplo de código a seguir evita esse aviso.
IoReleaseCancelSpinLock(Irp->CancelIrql);