Aviso C28107

O recurso deve ser mantido ao chamar a função

Um recurso que o programa deve adquirir antes de chamar a função não foi adquirido quando a função foi chamada. Como resultado, a chamada de função falhará. Esse aviso é relatado somente quando os recursos são adquiridos e liberados na mesma função.

Exemplo

O código a seguir gera esse aviso:

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

O seguinte exemplo de código evita esse aviso:

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