Advertencia C28103

Recurso de pérdida

El objeto especificado contiene un recurso que no se ha liberado. Una función a la que se llama se ha anotado con __drv_acquiresResource o __drv_acquiresResourceGlobal y esta advertencia indica que el recurso denominado en la anotación no se liberó.

Ejemplo

El siguiente código de ejemplo genera esta advertencia:

res = KeSaveFloatingPointState(buffer);

El siguiente código de ejemplo evita esta advertencia:

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

Si esta advertencia se notifica como un falso positivo, la causa más probable es que la función que libera el recurso no se anota con __drv_releasesResource o __drv_releasesResourceGlobal. Si usa funciones contenedoras para funciones del sistema, las funciones contenedoras deben usar las mismas anotaciones que hacen las funciones del sistema. Actualmente, muchas funciones del sistema se anotan en el archivo de modelo, por lo que las anotaciones no son visibles en los archivos de encabezado.