Partilhar via


Aviso C28112

Uma variável (nome do parâmetro) que é acedida através de uma função Interlocked deve ser sempre acedida através de uma função Interlocked. Ver número da linha: Nem sempre é seguro aceder a uma variável que é acedida através da família de funções Interlocked* de qualquer outra forma.

Uma variável que é acessada usando as rotinas de suporte executivo intertravadas, como InterlockedCompareExchangeAcquire, é acessada posteriormente usando uma função diferente.

Observações

InterlockedXxx As funções destinam-se a fornecer operações atómicas, mas são apenas atómicas em relação a outras InterlockedXxx funções. Embora certas atribuições, acessos e comparações comuns com variáveis que são usadas pelas rotinas Interlocked* possam ser acessadas com segurança usando uma função diferente, o risco é grande o suficiente para justificar o exame de cada instância.

Nome da análise de código: INTERLOCKED_ACCESS

Exemplo

O código a seguir gera esse aviso:

inter_var--;
//code
InterlockedIncrement(&inter_var);

O código a seguir corrige este aviso acedendo a inter_var exclusivamente através das funções InterlockedXxx.

InterlockedDecrement(&inter_var);
//code
InterlockedIncrement(&inter_var);

Ver também

Função InterlockedIncrement (wdm.h)
Função InterlockedDecrement (wdm.h)