Partilhar via


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);
}