C26112
warning C26112: Il chiamante non può utilizzare alcun blocco prima di chiamare <func>.
L'annotazione _Requires_no_locks_held_ impone la condizione che il chiamante non contenga alcun blocco durante la chiamata alla funzione.L'avviso C26112 viene generato quando una funzione non riesce a rilasciare tutti i blocchi, prima di chiamare un'altra funzione.
Esempio
Nell'esempio seguente viene generato l'avviso C26112 perché la precondizione _Requires_no_locks_held_ viene violata dalla chiamata NoLocksAllowed all'interno della sezione di blocco.
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);
}