C28103

Advertencia C28103: pérdida de recursos

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

Ejemplo

El siguiente ejemplo de código genera la advertencia:

res = KeSaveFloatingPointState(buffer);

El siguiente ejemplo de código evita la advertencia:

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

Si esta advertencia se muestra como falso positivo, la causa más probable es que la función que libera el recurso no está anotada con __drv_releasesResource o __drv_releasesResourceGlobal.Tenga en cuenta que si utiliza funciones de contenedor para las funciones del sistema, las funciones de contenedor deben utilizar las mismas anotaciones que las funciones del sistema.Actualmente, muchas funciones del sistema se indican en el archivo del modelo, por lo que las anotaciones no están visibles en los archivos de encabezado.