just a confirmation, to see if I didn' t miss something obvious;

InterlockedExchange64 performs atomically with respect to other InterlockedExchange64 calls also on 32 bit systems, doesn't it ?

I ask, because the msdn doc says "To operate on a 32-bit variable, use the InterlockedExchange function." that may be interpreted negatively ...