C26112
Aviso C26112: chamador não pode conter qualquer bloqueio antes de chamar <func>.
A anotação _Requires_no_locks_held_ impõe uma pré-condição que o chamador não deve conter qualquer bloqueio enquanto chama a função.C26112 de aviso é emitido quando uma função falha liberar todos os bloqueios antes de chamar outra função.
Exemplo
O exemplo a seguir gera aviso C26112 porque o _Requires_no_locks_held_ pré-condição é violada pela chamada para NoLocksAllowed dentro da seção bloqueada.
typedef struct _DATA
{
CRITICAL_SECTION cs;
} DATA;
_Requires_no_locks_held_
void NoLocksAllowed(DATA* p)
{
// Lock sensitive operations here
}
void LocksHeldFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
NoLocksAllowed(p); // Warning C26112
LeaveCriticalSection(&p->cs);
}