刚才又调试了下,又发现一个疑问
kd> kChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong.f7a18e64 ee18635e xxxxx+0x268af7a18e88 80500d88 xxxxx+0x635ef7a18fa4 80500e9f nt!KiTimerListExpire+0x122f7a18fd0 80542b8d nt!KiTimerExpiration+0xaff7a18ff4 8054285a nt!KiRetireDpcList+0x46f7a18ff8 ee2a2c04 nt!KiDispatchInterrupt+0x2a8054285a 00000000 0xee2a2c04kd> !threadTHREAD 86340a38 Cid 05ac.04e4 Teb: 7ffdd000 Win32Thread: e11a6348 RUNNING on processor 0IRP List: 8618fae0: (0006,0190) Flags: 00000030 Mdl: 861627a8 86335bd8: (0006,0190) Flags: 00000030 Mdl: 866b78b0 86720630: (0006,0190) Flags: 00000000 Mdl: 00000000Not impersonatingDeviceMap e1b08420Owning Process 0 Image: <Unknown>Attached Process 861d8540 Image: XXXX.exeWait Start TickCount 110483 Ticks: 1 (0:00:00:00.015)Context Switch Count 462724 LargeStackUserTime 00:00:53.437KernelTime 00:14:32.328Win32 Start Address XXXX (0x0225817b)Start Address kernel32!BaseProcessStartThunk (0x7c8106f5)Stack Init ee2a3000 Current ee2a2b94 Base ee2a3000 Limit ee29e000 Call 0Priority 8 BasePriority 8 PriorityDecrement 0 DecrementCount 16ChildEBP RetAddr Args to Child WARNING: Stack unwind information not available. Following frames may be wrong.f7a18e64 ee18635e 804f4758 8634a030 00000000 xxxxx+0x268af7a18e88 80500d88 80552840 00000000 7f440a14 xxxxx+0x635ef7a18fa4 80500e9f 04f66208 00000004 ffdff000 nt!KiTimerListExpire+0x122 (FPO: [0,62,0])f7a18fd0 80542b8d 80553da0 00000000 0001af94 nt!KiTimerExpiration+0xaf (FPO: [4,6,0])f7a18ff4 8054285a ee2a2c04 00000000 00000000 nt!KiRetireDpcList+0x46 (FPO: [0,0,0])f7a18ff8 ee2a2c04 00000000 00000000 00000000 nt!KiDispatchInterrupt+0x2a (FPO: [Uses EBP] [0,0,1])8054285a 00000000 00000009 bb835675 00000128 0xee2a2c04
dpc不是在一个特定的内核栈中执行的么?怎么2个k命令显示的结果是一样? 求老师和各位前辈教育
调了搞了半天,疑问越来越多,现在的几个问题都没有解决。。郁闷
1.此dpc定时器是在哪个中断(也可能是idl或时钟,idl可以明显显示出来看)后触发的?不过好像这个问题没什么多大意义,主要就是想找到这个中断
2.定位定时器对象
3.dpc例程的地址(解决2的话这个就顺带解决了,现在假如2没解决的情况下如何找)
4.如何找到dpc定时器的设置者?kisettimerex在哪个模块里调用的。
求老师前辈们慷慨教育,晚辈不胜感激.
张老师的邮箱是多少啊?