C26110

警告 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 
}