C28113

警告 C28113:通过 Interlocked 函数访问局部变量

驱动程序使用 Interlocked 执行支持例程(例如,InterlockedDecrement)来访问局部变量。

虽然允许驱动程序将本地变量的地址传递给另一个函数,然后使用互锁函数对该变量进行操作,但必须确保堆栈不会被意外交换到磁盘,并且变量跨所有可使用它的线程具有正确的生存期。

示例

通常,后续计算会使用 Interlocked 执行支持例程的返回值,而不是输入参数。此外,Interlocked 例程仅保护第一个(最左侧)参数。以下列方式使用 Interlocked 例程时不会保护全局值,并且通常毫无用处。

InterlockedExchange(&local, global)

下列形式对数据具有相同的作用,并且可安全访问全局变量。

local = InterllockedExchange(&global, global)