|
|
|
|
|
|
|
Windows内核调试
帖子发起人: 一鱼之歌 发起时间: 2009-09-08 11:12 上午 回复: 8
|
帖子排序:
|
|
|
|
2009-09-08, 11:12 上午
|
一鱼之歌
注册: 2009-02-10
发 贴: 36
|
理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
问题: 1我这个截图就是一个设备栈了吧?
2。cdfs和redbook是什么关系,
3。设备堆栈里面应该全部是attach的关系吧,对不?
4。它里面的stackszie我也不知道怎么数。。
5。为什么有\driver attach在\device上?
很想知道。。我把上面的所有设置的各个字段的值抄在纸上对应,可是还理解不了
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 15:24 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
1. 没错,是设备栈。
2. Redbook.sys 是微软公司的 Digital CD Audio Playback Filter Driver,顾名可以思义。
3. 不全是。比如卷管理器 Ftdisk.sys 和 文件系统设备对象是通过 _VPB 的 DeviceObject/RealDevice 连接;和 磁盘类驱动是通过 I/O 控制码传递设备对象指针来连接的。
4. 设备对象的 Stack Size 可以参见 Device Tree 的输出信息"Stack Size" 或用 Windbg 查看 _DEVICE_OBJECT + 0x030。
5. 是指最外层的 DRV 吗?那是设备对象的“回指指针”,指向父驱动对象。
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 18:47 下午
|
一鱼之歌
注册: 2009-02-10
发 贴: 36
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
谢谢王宇兄。
那个stacksize我数不对,我看书理解就是在设备栈中,它attach到第几层嘛,也就是它再住下几层就到最下层。可是我在这个栈中数得不对啊。
如这个图中
http://bbs.pediy.com/attachment.php?attachmentid=30878&stc=1&d=1252406410
partMgr的stacksize=4而DR1的stacksize=3,真晕,(可能是一对多搞乱了,不懂)
问题5。不知道你算答了我没有,因为我印象中设备栈,顾名思义那样就是所有设备连接起来,应该形如 \device\xxx上面是\device\yyyy再有的话就是\device\zzzzz
可是那里显示的是\device\cdrom0然后是\drvier\redbook (这个redbook的前面是driver)
不知道我表述清楚了没,谢谢
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 19:43 下午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
这个链接里的东西我看不到?
http://bbs.pediy.com/attachment.php?attachmentid=30878&stc=1&d=1252406410
“指定的 附件 无效。如果您来自一个有效链接,请通知管理员。”
--------------------
Device Tree 那的显示仅仅是个名字而已 ( 它们都是 _DEVICE_OBJECT ),我还是喜欢 Windbg 的原汁原味:
0: kd> !drvobj atapi Driver object (89de2b60) is for: \Driver\atapi Driver Extension List: (id , addr) (b9f1fcd8 89dea4f8) Device Object list: 89da8940 89db8940 89dc5030 89daa030 89db9030
0: kd> !devstack 89db8940 !DevObj !DrvObj !DevExt ObjectName 89be33f0 \Driver\redbook 89be34a8 89be2030 \Driver\Cdrom 89be20e8 CdRom0 89be37b0 \Driver\Imapi 89be3868 89e59030 \Driver\ACPI 89dfd6a8 00000093 > 89db8940 \Driver\atapi 89db89f8 IdeDeviceP0T0L0-3 !DevNode 89e592e0 : DeviceInst is "" ServiceName is ""
0: kd> !devobj 89be2030 Device object (89be2030) is for: CdRom0 \Driver\Cdrom DriverObject 89be5218 Current Irp 00000000 RefCount 2 Type 00000002 Flags 00002050 Vpb 89d6be90 DevExt 89be20e8 DevObjExt 89be2668 Dope 89ddf9c8 ExtensionFlags (0000000000) AttachedDevice (Upper) 89be33f0 \Driver\redbook AttachedTo (Lower) 89be37b0 \Driver\Imapi Device queue is not busy.
0: kd> dt _VPB 89d6be90 ntdll!_VPB +0x000 Type : 10 +0x002 Size : 88 +0x004 Flags : 1 +0x006 VolumeLabelLength : 0x18 +0x008 DeviceObject : 0x89afcda8 _DEVICE_OBJECT +0x00c RealDevice : 0x89be2030 _DEVICE_OBJECT +0x010 SerialNumber : 0x3b6761ae +0x014 ReferenceCount : 3 +0x018 VolumeLabel : [32] 0x39
0: kd> !devobj 89afcda8 Device object (89afcda8) is for: \FileSystem\Cdfs DriverObject 89a5a298 Current Irp 00000000 RefCount 0 Type 00000003 Flags 00000000 DevExt 89afce60 DevObjExt 89afcfd0 ExtensionFlags (0000000000) AttachedDevice (Upper) 89a3e2a0 \FileSystem\Sfilter Device queue is not busy.
0: kd> !devstack 89afcda8 !DevObj !DrvObj !DevExt ObjectName 89655c98 \Driver\SymEvent 89655d50 89a3e2a0 \FileSystem\Sfilter89a3e358 > 89afcda8 \FileSystem\Cdfs 89afce60
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 20:36 下午
|
一鱼之歌
注册: 2009-02-10
发 贴: 36
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
哇,好多东西学啊。。。谢谢王宇兄
果然还是windbg看舒服点。。
上次来这里逛是半年前,你技术又牛了很多了吧。
很希望能有你指点,,,这附近我没人问。
不知道你上这论坛时间多不,或者有其它更有的方式请教你不?
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 20:42 下午
|
sudami
注册: 2008-09-24
发 贴: 17
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-08, 23:08 下午
|
一鱼之歌
注册: 2009-02-10
发 贴: 36
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
如果能实时联系向他请教那最好不过了,
我也知道会麻烦到他,不过我可以总结好问题再问
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-09, 10:12 上午
|
王宇
注册: 2007-05-08
发 贴: 306
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
2009-09-09, 16:44 下午
|
一鱼之歌
注册: 2009-02-10
发 贴: 36
|
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
|
|
IP 地址: 已记录
|
报告
|
|
|
|
高端调试 » 软件调试 » Windows内核调试 » Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
|
|
|
|
|
|