Compartir a través de


C28107

advertencia C28107: Los recursos deben retenerse cuando haya una llamada a una función

Un recurso que el programa debe adquirir antes de llamar a la función no fue adquirido cuando se llamó a la función.Como resultado, la llamada a función no se podrá realizar.Esta advertencia se muestra cuando se adquieren recursos y se liberan en la misma función.

Ejemplo

El siguiente ejemplo de código genera la advertencia:

ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);

El siguiente ejemplo de código evita la advertencia:

KeEnterCriticalRegion();
ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);
KeLeaveCriticalRegion();
KeEnterCriticalRegion();
ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);
KeLeaveCriticalRegion();