次の方法で共有


C26110

C26110 の警告: <lock> のロックに失敗した呼び出し 関数 <func> を呼び出す前にします。

ロックが必要な場合に、関数自体またはその呼び出し元がロックを取得する必要があるかどうかが明確になっていることを確認します。警告 C26110 発行の違反があった場合、 _Requires_lock_held_コメント。

使用例

次の例では、C26110 の警告が生成されます、コメント_Requires_lock_held_関数でLockRequiredという、呼び出し元の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 
}