Freigeben über


C26110

Warnung C26110: Anrufer Sperre <lock> fehl vor dem Aufruf der Funktion <func>.

Wenn eine Sperre erforderlich ist, sollten Sie unbedingt klären, ob die Funktion selbst oder dessen Aufrufer die Sperre erhalten sollten.C26110 Warnung wird ausgegeben, wenn es einen Verstoß gegen stellt die _Requires_lock_held_ Anmerkung.

Beispiel

Im folgenden Beispiel wird Warnung C26110 generiert, weil die Anmerkung _Requires_lock_held_ auf Funktion LockRequired gibt an, dass der Aufrufer der LockRequired muss die Sperre zu erwerben, bevor wird LockRequired.Ohne diese Anmerkung LockRequired hat, die Sperre abzurufen, bevor sie von der Sperre geschützten freigegebenen Daten zugreift.

typedef struct _DATA 
{
    CRITICAL_SECTION cs;
    int d;
} DATA;

_Requires_lock_held_(p->cs)

void LockRequired(DATA* p)
{
    p->d = 0;
}

void LockNotHeld(DATA* p) 
{ 
    LockRequired(p); // Warning C26110 
}