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();