Replaced InterlockedAdd() for InterlockedExchangeAdd() to avoid dependency on SDK7

Replaced usage of InterlockedAdd() and InterlockedAdd64() to avoid dependency on SDK7 of Windows.
These functions are not declared in plain vanilla VS2010 (as of right now).

And they are anyway currently defined on the header files as a derivative of InterlockedExchangeAdd():

```c
__forceinline
LONG
InterlockedAdd(
    __inout __drv_interlocked LONG volatile *Addend,
    __in LONG Value
    )

{
    return InterlockedExchangeAdd(Addend, Value) + Value;
}
```