Avviso C28113
Accesso a una variabile locale tramite una funzione interlocked
Il driver usa una routine di supporto esecutivo interlocked, ad esempio InterlockedDecrement, per accedere a una variabile locale.
Anche se i driver sono autorizzati a passare l'indirizzo di una variabile locale a un'altra funzione e quindi usare una funzione interlocked per operare su tale variabile, è importante verificare che lo stack non venga scambiato su disco in modo imprevisto e che la variabile abbia il tempo di vita corretto in tutti i thread che potrebbero usarlo.
Esempio
In genere, il valore restituito di una routine di supporto esecutivo Interlocked viene usato nei calcoli successivi, anziché gli argomenti di input. Inoltre, le routine Interlocked proteggono solo il primo argomento (a sinistra). L'uso di una routine interlocked nel modo seguente non protegge il valore globale e spesso non serve alcun scopo.
InterlockedExchange(&local, global)
Il formato seguente ha lo stesso effetto sui dati e accede in modo sicuro alla variabile globale.
local = InterllockedExchange(&global, global)
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per