Partilhar via


C28113

C28113 de aviso: Acessando um variável local através de uma função com barreira

O driver estiver usando uma rotina executiva com barreira de suporte, como InterlockedDecrement, para acessar uma variável local.

Embora os drivers são permitidos para passar o endereço de uma variável local para outra função, e então usa uma função com barreira para operar nessa variável, é importante verifique que a pilha não ser trocada fora o disco inesperada e que a variável tem a hora correta de vida em todos os segmentos que podem usar o.

Exemplo

Normalmente, o valor de retorno de uma rotina executiva com barreira de suporte é usado em cálculos subsequentes, em vez dos argumentos de entrada.Além disso, rotinas com barreira protegem somente o primeiro argumento (mais à esquerda).Usar uma rotina com barreira da seguinte forma não protege o valor de global e geralmente não tem finalidade.

InterlockedExchange(&local, global)

O exemplo a seguir formulário tem o mesmo efeito nos dados e acessa com segurança a variável global.

local = InterllockedExchange(&global, global)