警告 C28113
Interlocked 関数経由でローカル変数にアクセスしています
ドライバーは、InterlockedDecrement などの Interlocked エグゼクティブ サポート ルーチンを使用して、ローカル変数にアクセスします。
ドライバーは、ローカル変数のアドレスを別の関数に渡し、その変数を操作するためにインターロックされた関数を使用することが許可されていますが、スタックが予期せずディスクにスワップアウトされること、および変数が使用するすべてのスレッドで正しい有効期間を持っていることを確認することが重要です。
例
通常、Interlocked エグゼクティブ サポート ルーチンの戻り値は、入力引数の代わりに後続の計算で使用されます。 また、Interlocked ルーチンは、最初の (左端の) 引数のみを保護します。 次の方法で Interlocked ルーチンを使用しても、グローバルの価値は保護されないため、多くの場合、目的を果たしません。
InterlockedExchange(&local, global)
次の形式にすると、データに与える影響を同一に保ちながら、グローバル変数に安全にアクセスできます。
local = InterllockedExchange(&global, global)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示