警告 C26111
関数 'func' を呼び出す前に、呼び出し元がロック 'lock' を解放できない。
注釈 _Requires_lock_not_held_
は、関数が呼び出されたときに、指定されたロックのロック数を 0 より大きくできないことを前提条件とします。 警告 C26111 は、関数が別の関数を呼び出す前にロックを解除できなかった場合に発行されます。
例
次の例では、ロック済みのセクション内の DoNotLock
の呼び出しが _Requires_lock_not_held_
前提条件に違反するため、警告 C26111 が生成されます。
typedef struct _DATA
{
CRITICAL_SECTION cs;
int d;
} DATA;
_Requires_lock_not_held_(p->cs)
void DoNotLock(DATA* p)
{
EnterCriticalSection(&p->cs);
p->d = 0;
LeaveCriticalSection(&p->cs);
}
void LockedFunction(DATA* p)
{
EnterCriticalSection(&p->cs);
DoNotLock(p); // Warning C26111
LeaveCriticalSection(&p->cs);
}
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示