C28107
Ostrzeżenie C28107: zasób musi być wstrzymany podczas wywoływania funkcji
Zasób, który program musi nabyć przed wywołaniem funkcji nie została przejęta, gdy funkcja została wywołana.W rezultacie wywołanie funkcji zakończy się niepowodzeniem.To ostrzeżenie jest zgłaszane tylko wtedy, gdy zasoby są nabyte i wydany w tej samej funkcji.
Przykład
Poniższy kod przykładowy generuje to ostrzeżenie:
ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);
Poniższy kod przykładowy pozwala uniknąć tego ostrzeżenia:
KeEnterCriticalRegion();
ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);
KeLeaveCriticalRegion();
KeEnterCriticalRegion();
ExAcquireResourceLite(resource, true);
ExReleaseResourceLite(resource);
KeLeaveCriticalRegion();