Partager via


Avertissement C28112

Une variable (nom de paramètre) accessible via une fonction interblocée doit toujours être accessible via une fonction interblocée. Voir le numéro de ligne : il n’est pas toujours sûr d’accéder à une variable accessible via la famille interlocked* de fonctions d’une autre manière.

Une variable accessible à l’aide des routines de support interlocked executive, telles qu’InterlockedCompareExchangeAcquire, est plus tard accessible à l’aide d’une autre fonction.

Notes

InterlockedXxx les fonctions sont destinées à fournir des opérations atomiques, mais sont uniquement atomiques par rapport à d’autres InterlockedXxx fonctions. Bien que certaines affectations, accès et comparaisons ordinaires aux variables utilisées par les routines Interlocked* soient accessibles en toute sécurité à l’aide d’une fonction différente, le risque est suffisant pour justifier l’examen de chaque instance.

Nom de l’analyse du code : INTERLOCKED_ACCESS

Exemple

Le code suivant génère cet avertissement :

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

Le code suivant corrige cet avertissement en accédant strictement par le biais InterlockedXxx de inter_var fonctions :

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

Voir aussi

InterlockedIncrement, fonction (wdm.h)
InterlockedDecrement, fonction (wdm.h)