Предупреждение C26112
Вызывающий объект не может удерживать блокировку перед вызовом func.
Заметка _Requires_no_locks_held_
накладывает предварительные условия, что вызывающий объект не должен держать блокировку во время вызова функции. Предупреждение C26112 выдается, когда функция не может освободить все блокировки перед вызовом другой функции.
Пример
В следующем примере создается предупреждение C26112, так как _Requires_no_locks_held_
предварительные условия нарушаются вызовом NoLocksAllowed
в заблокированном разделе.
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);
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по