Advertencia C26101

No se puede usar correctamente la operación interbloqueada para la variable "var".

Las API de Windows ofrecen varias operaciones interbloqueadas. La anotación _Interlocked_ especifica que solo se debe tener acceso a una variable mediante una operación interbloqueada. Advertencia C26101 se emite cuando un acceso de variable no es coherente con la _Interlocked_ anotación.

Ejemplo

En el ejemplo siguiente se genera la advertencia C26101 porque hay una infracción del _Interlocked_ contrato.

CRITICAL_SECTION cs;
typedef struct _DATA
{
    _Interlocked_ LONG data;
} DATA;

void Safe(DATA* p)
{
    InterlockedIncrement(&p->data); // OK
}

void Unsafe(DATA* p)
{
    p->data += 1; // Warning C26101
    EnterCriticalSection(&cs);
    LeaveCriticalSection(&cs);
}