在研究一段HOOK SSDT的代码中看到有这样一段宏:
#define HOOK_SYSCALL(_Function, _Hook, _Orig ) \
_Orig = (PVOID) InterlockedExchange( (PLONG) &MappedSystemCallTable[SYSCALL_INDEX(_Function)], (LONG) _Hook)
次宏是用来调换自己的hook函数与原系统函数的地址。但只这个宏的到底是怎样实现的,一直不明白。希望有HOOK SSDT的朋友指点一下。谢谢