C26112

警告 C26112:调用方无法持有任何锁(在调用 <func> 函数前)。

注释 _Requires_no_locks_held_ 施加前提条件调用方不能容纳任何锁,当它调用函数时。发出 C26112 警告时,在它调用另一个函数之前不会释放所有锁。

示例

因为 _Requires_no_locks_held_ 前置条件由对 NoLocksAllowed 的调用在违反锁定节中,下面的示例生成警告 C26112。

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);
}