Debugging Tools for Windows |
在Windows XP之前的操作系统中,!drivers 扩展命令显示目标机上所有已加载驱动的列表,以及它们的内存使用的摘要信息。
在Windows XP和之后版本的Windows中,!drivers扩展命令已经废除。使用lm命令来显示已加载驱动和其他的模块。命令lm t n显示的信息和旧的!drivers扩展非常类似。但是,它不会像!drivers一样显示驱动程序的内存使用情况,只显示驱动的开始和结束地址、映像名和时间戳。!vm和!memusage扩展命令可以用来显示内存统计信息。
Windows 2000 | Kdextx86.dll |
Windows XP和之后 | 不可用 |
该命令显示的说明如下表:
列 | 含义 |
---|---|
Base | 设备驱动代码的16进制起始地址。当造成崩溃的代码的内存地址落在某个驱动的基地址以及列表中下一个驱动的基地址之间时,它一般就是造成错误的驱动。例如,Ncrc810.sys的基地址是0x80654000。则该地址和0x8065a000之间的任何地址都是属于改驱动的。 |
Code Size | 驱动代码的大小,以KB为单位,包括16进制和10进制。 |
Data Size | 分配给驱动的数据的总大小,以KB为单位,包括16进制和10进制。 |
Locked | (仅当使用标志0x2 时) 被驱动程序锁定的内存总数。 |
Resident | (仅当使用0x1 或0x2时) 驱动实际驻留在物理内存中的内存大小。 |
Standby | (仅当使用0x1 或0x2时) 备用的驱动内存大小。 |
Loader Entry | (仅当使用标志0x2 时) 加载器入口点(loader entry)的地址。 |
Driver Name | 驱动文件名。 |
Creation Time | 驱动的链接日期。不要将它和可以被外部工具改变的驱动的文件时间混淆。链接日期是由编译器在驱动或可执行文件编译时设置的。它和文件时间可能比较接近,但不会总是一样的。 |
下面是一个被删节的该命令的示例:
Loaded System Driver Summary
Base Code Size Data Size Driver Name Creation Time
80080000 f76c0 (989 kb) 1f100 (124 kb) ntoskrnl.exe Fri May 26 15:13:00
80400000 d980 ( 54 kb) 4040 ( 16 kb) hal.dll Tue May 16 16:50:34
80654000 3f00 ( 15 kb) 1060 ( 4 kb) ncrc810.sys Fri May 05 20:07:04
8065a000 a460 ( 41 kb) 1e80 ( 7 kb) SCSIPORT.SYS Fri May 05 20:08:05
查看Plug and Play调试获得该扩展命令的应用。关于驱动程序和它们的内存使用的信息,查看Windows Driver Kit (WDK) 文档,以及Mark Russinovich 和David Solomon编写的Microsoft Windows Internal。