Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: 一鱼之歌   发起时间: 2009-09-08 11:12 上午   回复: 8

Print Search
帖子排序:    
   2009-09-08, 11:12 上午
vincent 离线,最后访问时间: 2009/9/8 11:10:53 一鱼之歌

发帖数前25位
注册: 2009-02-10
发 贴: 36
理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
问题:
1我这个截图就是一个设备栈了吧?
2。cdfs和redbook是什么关系,
3。设备堆栈里面应该全部是attach的关系吧,对不?
4。它里面的stackszie我也不知道怎么数。。
5。为什么有\driver attach在\device上?

很想知道。。我把上面的所有设置的各个字段的值抄在纸上对应,可是还理解不了



IP 地址: 已记录   报告
   2009-09-08, 15:24 下午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
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 下午
vincent 离线,最后访问时间: 2009/9/8 11:10:53 一鱼之歌

发帖数前25位
注册: 2009-02-10
发 贴: 36
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
谢谢王宇兄。

那个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 下午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
这个链接里的东西我看不到?

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 下午
vincent 离线,最后访问时间: 2009/9/8 11:10:53 一鱼之歌

发帖数前25位
注册: 2009-02-10
发 贴: 36
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
哇,好多东西学啊。。。谢谢王宇兄

果然还是windbg看舒服点。。

上次来这里逛是半年前,你技术又牛了很多了吧。

很希望能有你指点,,,这附近我没人问。

不知道你上这论坛时间多不,或者有其它更有的方式请教你不?
IP 地址: 已记录   报告
   2009-09-08, 20:42 下午
sudami 离线,最后访问时间: 2009/8/28 11:12:14 sudami

发帖数前75位
注册: 2008-09-24
发 贴: 17
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
WY同学有QQ & MSN 的.
:)
IP 地址: 已记录   报告
   2009-09-08, 23:08 下午
vincent 离线,最后访问时间: 2009/9/8 11:10:53 一鱼之歌

发帖数前25位
注册: 2009-02-10
发 贴: 36
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
如果能实时联系向他请教那最好不过了,

我也知道会麻烦到他,不过我可以总结好问题再问
IP 地址: 已记录   报告
   2009-09-09, 10:12 上午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
Sudami 同学来了! 起立鼓掌!~
IP 地址: 已记录   报告
   2009-09-09, 16:44 下午
vincent 离线,最后访问时间: 2009/9/8 11:10:53 一鱼之歌

发帖数前25位
注册: 2009-02-10
发 贴: 36
Re: 理解驱动的设备堆栈,看DeviceTree不解,(附图)
Reply Quote
好像sudami也才毕业,却那么牛了
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » 理解驱动的设备堆栈,看DeviceTree不解,(附图)

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.