C26112
Aviso C26112: O chamador não pode conter qualquer bloqueio antes de chamar <fun>.
A anotação _Requires_no_locks_held_ impor um pré-requisito que o chamador não deve conter nenhum bloqueio para chamar a função.C26112 de aviso é emitido quando uma função não libera todos os bloqueios antes que chama outra função.
Exemplo
O exemplo a seguir gerenciar C26112 de aviso porque a pré-requisito de _Requires_no_locks_held_ é violada pela chamada a NoLocksAllowed na seção bloqueado.
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);
}