Freigeben über


C26112

Warnung C26112: Aufrufer keine Sperre vor dem Aufruf von <func> zu halten.

Die Anmerkung _Requires_no_locks_held_ erlegt eine Voraussetzung, dass der Aufrufer keine Sperre halten muss, während es die Funktion aufruft.C26112 Warnung wird ausgegeben, wenn eine Funktion fehlschlägt, alle Sperren freizugeben, bevor sie eine andere Funktion aufruft.

Beispiel

Im folgende Beispiel wird C26112 Warnung generiert, da die _Requires_no_locks_held_ Voraussetzung verletzt, indem Sie den Aufruf von NoLocksAllowed in dem gesperrten Abschnitt.

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