能力值:
( LV2,RANK:10 )
|
-
-
2 楼
为啥要用汇编写?
void KeAcquireSpinLock (PSPIN_LOCK lock)
{
USHORT cpunr = KeGetCurrentProcessorNumber();
if (lock) {
while (InterlockedCompareExchange (&lock->flag, 1, 0) == 1) {
//已持有锁时,不能递归申请
if (lock->owner == cpunr) {
ASSERT(FALSE);
}
_mm_pause();
}
lock->owner = cpunr;
}
}
|
能力值:
( LV5,RANK:75 )
|
-
-
3 楼
你这是泄露的源码里的?
用裸函数没有ebp框架,这是用IDA扒出来的,略改使可编译做原理演示,备忘;
为什么不能用汇编?
PS确实没考虑递归申请~
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我也是逆别的东西时扒的,用C的好处是支持64位
|
|
|