共用方式為


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