The latest version of this topic can be found at _InterlockedAddLargeStatistic.
Performs an interlocked addition in which the first operand is a 64-bit value.
long _InterlockedAddLargeStatistic( __int64 volatile * Addend, long Value );
A pointer to the first operand to the add operation. The value pointed to is replaced by the result of the addition.
The second operand; value to add to the first operand.
The value of the second operand.
Header file <intrin.h>
This intrinsic is not atomic because it is implemented as two separate locked instructions. An atomic 64-bit read that occurs on another thread during the execution of this intrinsic could result in an inconsistent value being read.
This function behaves as a read-write barrier. For more information, see _ReadWriteBarrier.