建議使用 Visual Studio 2017

C28113

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

warning C28113: Accessing a local variable via an Interlocked function

驅動程式使用 Interlocked 管理支援常式 (例如 InterlockedDecrement) 存取區域變數。

雖然允許驅動程式將區域變數的位址傳遞至另一個函數,然後使用連鎖的函式對該變數進行作業,請務必確認堆疊將不會意外地切換到磁碟,而且變數具有可能會使用它的所有執行緒的正確存留期。

通常,連鎖主管支援常式的傳回值是用於後續的計算,而不是輸入引數。 此外,連鎖常式只能保護第一個 (最左邊的) 引數。 以下列方式使用連鎖常式不會保護全域值,並且通常無意義。

InterlockedExchange(&local, global)  

下列形式在資料和安全存取全域變數方面具有相同效果。

local = InterllockedExchange(&global, global)  
  

顯示: