C26110
Aviso C26110: chamador falhando manter bloqueio <lock> antes de chamar a função <func>.
Quando um bloqueio é necessário, certifique-se de esclarecer se a própria função ou seu chamador deve adquirir o bloqueio.C26110 de aviso é emitido quando há uma violação de _Requires_lock_held_ anotação.
Exemplo
No exemplo a seguir, C26110 aviso é gerado porque a anotação _Requires_lock_held_ na função LockRequired indica que o chamador de LockRequired deve adquirir o bloqueio antes de chamar LockRequired.Sem essa anotação, LockRequired tem de adquirir o bloqueio antes que ele acesse dados protegidos pelo bloqueio compartilhados.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_held_(p->cs)
void LockRequired(DATA* p)
{
p->d = 0;
}
void LockNotHeld(DATA* p)
{
LockRequired(p); // Warning C26110
}