Share via


C26112

Warnung C26112: Aufrechterhalten von Sperren durch Aufrufer nicht möglich, bevor die <func> aufgerufen wird.

Die Anmerkung _Requires_no_locks_held_ erzwingt eine Vorbedingung auf, dass der Aufrufer keine Sperre aktivieren, darf während die Funktion aufruft.Warnung C26112 wird ausgegeben, wenn eine Funktion alle Sperren nicht freigeben kann, bevor eine andere Funktion aufruft.

Beispiel

Im folgenden Beispiel wird die Warnung C26112, da die _Requires_no_locks_held_ Vorbedingung durch den Aufruf von NoLocksAllowed im gesperrten Abschnitts verstoßen wird.

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