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内核调试

帖子发起人: jlflyfox   发起时间: 2010-04-07 12:58 下午   回复: 5

Print Search
帖子排序:    
   2010-04-07, 12:58 下午
jlflyfox 离线,最后访问时间: 2009/1/24 22:08:06 jlflyfox

发帖数前25位
注册: 2008-10-28
发 贴: 65
张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote

我现在的笔记本电脑xp出现了一个很奇怪的问题,安装任何硬件,比如usb lan,都先说找到新硬件,然后提示安装,结果每次都提示找不到指定文件,又不说具体是哪个文件,而驱动盘里面有inf/sys/cat文件,最后安装失败,在相应硬件哪里出现黄色惊叹号,真是郁闷

我现在打算调试下到底哪一步出现了问题,该对哪个程序进行断点设置啊


IP 地址: 已记录   报告
   2010-04-07, 13:22 下午
WANGyu 离线,最后访问时间: 2012/9/10 3:34:00 王宇

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote
我上次只跟踪到 setupapi!SetupDiSetDeviceInstallParams、setupapi!SetupDiBuildDriverInfoList 等就没往后跟了,我当时是从 netcfgx!CImplINetCfg::SelectWithFilterAndInstall 开始的。解决问题的一个捷径是开个 Procmon,看安装流程 ( 直到出现黄色惊叹号 ) 的栈回溯信息等。
IP 地址: 已记录   报告
   2010-04-07, 15:49 下午
jlflyfox 离线,最后访问时间: 2009/1/24 22:08:06 jlflyfox

发帖数前25位
注册: 2008-10-28
发 贴: 65
Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote

谢谢,

另外,我在setupapi.log里面看到有“#E154 类别安装程式失败。 错误 2系统找不到指定文件”,我比较气愤为什么这个log不把哪个指定文件给提示出来

 


IP 地址: 已记录   报告
   2010-04-07, 22:22 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote

建议启用更详细的安装日志,在如下注册表键下,加入一个LogLevel键值,取值为0xFF

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup

细节请参见下面链接中的Word文档,http://www.microsoft.com/whdc/driver/install/setupapilog.mspx 附录A。


IP 地址: 已记录   报告
   2010-04-08, 10:30 上午
jlflyfox 离线,最后访问时间: 2009/1/24 22:08:06 jlflyfox

发帖数前25位
注册: 2008-10-28
发 贴: 65
Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote

多谢张老师和王宇!

问题已经搞定,居然是如下

http://support.microsoft.com/kb/937056

与这个有关

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\Config
 
我自己还没有跟踪到那里,google出来的

 


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

发帖数前10位
男
注册: 2007-05-08
发 贴: 306
Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件
Reply Quote

这个注册表键值是这里读取的:netcfgx!HrCiSelectComponent()

该函数内部有一个 HrLoadNetworkConfigurationFromRegistry(),伪代码片段如下:

v4 = HrLoadNetworkConfigurationFromRegistry(0x20019u, &Data);

------------------------------------------------------------------------------

__stdcall HrLoadNetworkConfigurationFromRegistry(int a1, LPVOID lpData)
{
    int v2;
    int v4;
    HKEY Type;
    LPVOID lpMem;

    v2 = HrOpenNetworkKey(0x20019u, &Type);
    if ( !v2 )
    {
        if ( HrRegQueryTypeWithAlloc(Type, (LPVOID)L"Config", 3, (int)&lpMem, (int)&v4) )
        ......

其中 HrOpenNetworkKey() 就是打开 "System\\CurrentControlSet\\Control\\Network",如下:

int __stdcall HrOpenNetworkKey(REGSAM samDesired, PHKEY phkResult)
{
    return HrRegOpenKeyEx(HKEY_LOCAL_MACHINE, L"System\\CurrentControlSet\\Control\\Network", samDesired, phkResult);
}


IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 张老师或者哪位高手,请问该如何调试系统安装或者加载某个硬件

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