能力值:
( LV2,RANK:10 )
2 楼
楼下给解释一下=。=
能力值:
( LV8,RANK:120 )
3 楼
如果你获取的这个快速互斥体被其他线程占用~~
不加判断直接获取~~恐怕~~是会BSOD
能力值:
( LV12,RANK:750 )
4 楼
是你自己代码哪里写错了吧?
看一下bsod的堆栈信息以及show你的完整代码
ExAcquireFastMutex puts the caller into a wait state if the given fast mutex cannot be acquired immediately. Otherwise, the caller is given ownership of the fast mutex with APCs to the current thread disabled until it releases the fast mutex.
Use ExTryToAcquireFastMutex if the current thread can do other work before it waits on the acquisition of the given mutex.
我看WRK里面也是这样用的啊
FAST_MUTEX KiGenericCallDpcMutex; ExInitializeFastMutex(&KiGenericCallDpcMutex);
ExAcquireFastMutex(&KiGenericCallDpcMutex);
xxxx
ExReleaseFastMutex(&KiGenericCallDpcMutex);
能力值:
( LV8,RANK:120 )
5 楼
可以用该函数判断当前是否可以获取互斥体ExTryToAcquireFastMutex()
如果返回值为TRUE,表示已经占用该互斥体。如果为FALSE,表明该互斥已经被其他线程占用
能力值:
( LV12,RANK:400 )
6 楼
问题不在代码, 你可以试一下, 在win7下MmGetSystemRoutineAddress获取这个函数(以及其他几个函数)时没有做导出转向, 导致获取的地址是错误的
当然 如果你只是静态引用方式调用的话 没有任何错误
能力值:
( LV12,RANK:400 )
7 楼
问题不在代码, 你可以试一下, 在win7下MmGetSystemRoutineAddress获取这个函数(以及其他几个函数)时没有做导出转向, 导致获取的地址是错误的
当然 如果你只是静态引用方式调用的话 没有任何错误
能力值:
( LV12,RANK:760 )
8 楼
win7应该是ExiAcquireFastMutex
上传的附件:
能力值:
( LV5,RANK:60 )
9 楼
[QUOTE=cvcvxk;1152061]win7应该是ExiAcquireFastMutex
[/QUOTE]
太强大了,猛抽了楼主~~~
能力值:
( LV12,RANK:400 )
10 楼
不去实际操作一下, 光靠意淫是不会有进步的, 骚年
能力值:
( LV8,RANK:120 )
11 楼
mark 学习一个
能力值:
( LV2,RANK:10 )
12 楼
几年前就发现这个问题了,微软的MmGetSystemRoutineAddress->MiFindExportedRoutineByName解析导出表有问题,如果写的函数名字不对劲会BSOD
微软很阴险的,这个函数的内核自己搞导入表的时候是不会用的,他自己用的那套没问题
能力值:
( LV12,RANK:760 )
13 楼
这个问题貌似当年在某个洗澡按摩吃饭流程里听MJ说过~~
能力值:
( LV12,RANK:470 )
14 楼
牛人都是自己写GetProcAddress的吧,不需要用MS提供的
能力值:
( LV2,RANK:10 )
15 楼
没注意过,冷汗!