次の方法で共有


警告 C28112

Interlocked 関数を介してアクセスされる変数 (パラメーター名) は、常に Interlocked 関数を介してアクセスする必要があります。 行 番号を参照してください。他の方法で Interlocked* 関数ファミリを介してアクセスされる変数にアクセスすることは、常に安全であるとは限りません。

InterlockedCompareExchangeAcquire などの Interlocked エグゼクティブ サポート ルーチンを使用してアクセスされる変数には、後で別の関数を使用してアクセスします。

解説

InterlockedXxx 関数はアトミック操作を提供することを目的としていますが、他 InterlockedXxx の関数に関してはアトミックです。 Interlocked* ルーチンで使用される変数に対する特定の通常の代入、アクセス、比較には、別の関数を使用して安全にアクセスできますが、各インスタンスの調査に見合うほどの大きなリスクがあります。

コード分析名: INTERLOCKED_ACCESS

この警告が発生するコード例を次に示します。

inter_var--;
//code
InterlockedIncrement(&inter_var);

次のコードは、関数を通じてInterlockedXxx厳密にアクセスすることで、この警告をinter_var修正します。

InterlockedDecrement(&inter_var);
//code
InterlockedIncrement(&inter_var);

参照

InterlockedIncrement 関数 (wdm.h)
InterlockedDecrement 関数 (wdm.h)