共用方式為


C26110

警告 C26110: 在呼叫函式之前 <func>,持有鎖定<lock>的呼叫端失敗 。

當需要鎖定時,請確定釐清函式或它的呼叫端是否取得鎖定。當有違規 _Requires_lock_held_ 附註時,代表警告 C26110 發生。

範例

在下列範例中, C26110 產生警告,因為在函式 LockRequired 的附註 _Requires_lock_held_ 狀態, 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 
}