C26112
avertissement C26112 : L'appelant ne peut contenir aucun verrouillage avant d'appeler <func>.
L'annotation _Requires_no_locks_held_ applique une condition préalable que l'appelant ne doit contenir aucun verrouillage pendant qu'il appelle la fonction.C26112 avertissement est émis lorsque la fonction ne libère pas tous les verrous avant qu'elle appelle une autre fonction.
Exemple
L'exemple suivant génère C26112 d'avertissement parce que la condition préalable de _Requires_no_locks_held_ est violée par l'appel à NoLocksAllowed dans la section verrouillée.
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);
}