C26111
C26111 Uyarı: arayan kilidi <lock> başarısız <func> işlevi çağırmadan önce.
Ek açıklama _Requires_lock_not_held_ işlev çağrıldığında belirtilen kilit kilit sayısı sıfırdan büyük olamaz, bir önkoşulun uygular.Başka bir işlevi çağırmadan önce kilidi açmak bir işlev başarısız olduğunda uyarı C26111 verilir.
Örnek
Çünkü C26111 uyarı aşağıdaki örnek oluşturur _Requires_lock_not_held_ çağrısıyla önkoşulu ihlal DoNotLock içinde kilitli bir bölüme.
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_not_held_(p->cs)
void DoNotLock(DATA* p)
{
EnterCriticalSection(&p->cs);
p->d = 0;
LeaveCriticalSection(&p->cs);
}
void LockedFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
DoNotLock(p); // Warning C26111
LeaveCriticalSection(&p->cs);
}