Partager via


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