约有 15 项符合查询结果, 以下是第 1 - 2项。
费时 < 1 秒。
OK,就按上面的说法,不能换到其它低于APC level的线程,如此说来应该有线程相关的变量存放着对应的线程的irql了?否则何来比较线程A和线程B的irql?但irql又应该是processor级别的,乱了。暂且不说上面的。WINDOWS下是抢占式的系统,我的理解,这是靠时钟中断,然后计算线程的时间片,强制把时间片到期的线程切到等待状态,然后把NextThread切进去执行。按张老师你的说法假如那个到期的线程(所处的cpu)是在APC级别上,然后就不切NextThread了??感觉这里还有点混乱,Apc_level disable apc delivery,可apc ...
Posted in Windows内核调试
by
kkindof
on 2013-08-23
windows不是抢占式的吗?APC那个线程在raise irql到apc后,时间片刚好用完,难道不会切到其它线程吗?而且线程切换是在dispatch_level下,不会因为APC_level导致不能切换
Posted in Windows内核调试
by
kkindof
on 2013-08-20
关于IRQL在XP上raise irql的时候,只是把irql写到apic寄存器中(映射到0FFFE0080h,对这个地址的写会引发中断),并没用到pcr->irql字段(求证)而WIN7,WIN8在raise的时候就使用到了pcr->irql这个字段这里就引出一个问题:pcr是CPU相关的,如果线程A提升到apc_level后,被线程B抢占进来,此时的pcr->irql还是保存着apc_level吗?如果不是,在线程B切进来的时候怎么保证pcr->irql是正确的值??对于APC来说,APC应该是线程相关的,而MS文档上提到raise irql提升到APC LEVEL可以禁止APC deliver(包括special kernel apc)但由于raise ...
Posted in Windows内核调试
by
kkindof
on 2013-08-20
嗯,是不一样的,但我这里提出的核心问题是CPU在运行时怎么区分?哥们好像也是论坛好会员了,不知道在哪高就
Posted in Windows内核
by
kkindof
on 2013-07-17
这里是我对我遇到问题的一个分析结果 http://www.cnblogs.com/kkindof/p/3193443.html不知道张老师有没空指点下,其中里面有2 点希望得到肯定回答:1.我对这条指令0033:00000000`0046ba24
ff257c335600 jmp qword ptr
[BAVSvc+0x16337c (00000000`0056337c)] ds:002b:00000000`009ceda6=????????????????执行出错,分析的结果是否正确,即CPU是否根据这个cs.L为作区分2。wow64!Wow64pLongJmp+0x682函数是否为SEH ...
Posted in Windows内核
by
kkindof
on 2013-07-16
有点郁闷,发现这个版本最后发帖子的是我,还是11年的事了。不废话了,最近工作项目有个问题,后来调试后,问题解决了,但思考后有个点还没弄明白在wow64进程在插入一个APC,APC触发时最早是在ntdll64!kiapcdispatch接收到的,在这个函数里面会判断APC的特征,如果发现是32bit的进程的APC,则会调用wow64apcwapper切到32模式,然后走ntdll32!apcdispatch的流程。后来觉得异常分发也可能是这么干的,但调试了半天,还没找到,不知道wow64环境下是怎么整的,windows internals只是简单的描述了下,没给细节。不知道有没人研究过这块
Posted in Windows内核
by
kkindof
on 2013-07-13
不是这个原因吧?string不是支持那什么复制拷贝吗?
Posted in WinDbg
by
kkindof
on 2012-09-25