The _InterlockedExchangeAdd intrinsic has the following declaration:
int _InterlockedExchangeAdd(int *, int);
This intrinsic function performs an interlocked add of the second argument to the longword-aligned integer specified by the first argument. The intrinsic returns the previous value of the memory location specified by the first argument. This intrinsic contains required memory barriers.