C28103

C28103 de aviso: Recurso de escape

O objeto especificado contém um recurso que não é liberado.Uma função que é chamada foi anotada com __drv_acquiresResource ou __drv_acquiresResourceGlobal e este aviso indicam que o recurso chamado na anotação não foi liberado.

Exemplo

O exemplo de código gera este aviso:

res = KeSaveFloatingPointState(buffer);

O exemplo de código a seguir evita este aviso:

res = KeSaveFloatingPointState(buffer);
if (NT_SUCCESS(res))
{
    res = KeRestoreFloatingPointState(buffer);
}

Se esse erro é relatado como um falso positivo, a causa mais provável é que a função que libera o recurso não está anotada com __drv_releasesResource ou __drv_releasesResourceGlobal.Observe que se você estiver usando o wrapper funciona para funções do sistema, as funções do wrapper devem usar as mesmas anotações que as funções do sistema fazem.Atualmente, muitas funções do sistema são anotadas no arquivo de modelo, para que as anotações não são visíveis em arquivos de cabeçalho.