Предупреждение C26110

Вызывающий объект не удерживает блокировку "lock" перед вызовом функции Func.

Если требуется блокировка, убедитесь, что сама функция или вызывающий объект должен получить блокировку. Предупреждение C26110 выдается при нарушении заметки _Requires_lock_held_ или других заметок, связанных с блокировкой. Дополнительные сведения см. в разделе "Аннотирование поведения блокировки"

Пример

В следующем примере создается предупреждение C26110, так как заметка _Requires_lock_held_ о функции LockRequired указывает, что вызывающий объект LockRequired должен получить блокировку перед вызовом LockRequired. Без этой заметки необходимо получить блокировку перед доступом к любым общим данным, LockRequired защищенным блокировкой.

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
}