DWORD CompareAndExchange(const DWORD dwTest, DWORD * pdwFlag, const DWORD dwNewValue)
{
DWORD dwRet = 0xabcdef12;
__asm
{
mov edx, pdwFlag
mov eax, dwTest
mov ecx, dwNewValue
cmpxchg dword ptr [edx], ecx
mov dwRet, eax
}
return dwRet;
}