次の方法で共有


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