Freigeben über


Warnung C26110

Der Aufrufer hat vor dem Aufrufen der Funktion "func" die Sperre nicht gedrückt.

Wenn eine Sperre erforderlich ist, müssen Sie sicherstellen, ob die Funktion selbst oder der Aufrufer die Sperre abrufen soll. Warnung C26110 wird ausgegeben, wenn eine Verletzung der _Requires_lock_held_ Anmerkung oder andere sperrbezogene Anmerkungen vorliegt. Weitere Informationen finden Sie unter Annotating Locking Behavior

Beispiel

Im folgenden Beispiel wird die Warnung C26110 generiert, da die Anmerkung _Requires_lock_held_ für die Funktion LockRequired besagt, dass der Aufrufer LockRequired die Sperre vor dem Aufrufen LockRequiredabrufen muss. Ohne diese Anmerkung muss die Sperre erworben werden, bevor sie auf freigegebene Daten zugreift, LockRequired die durch die Sperre geschützt sind.

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
}