KMDF默许驱动编译后无法启动——句柄无效
KMDF默认驱动编译后无法启动——句柄无效
【开发环境】
host:Windows7 x64 旗舰版
target:Windows7 x86 home
虚拟机:VMWare9
WDK:8.0
VS:2012
【配置方式】
host与虚拟机中的target机器通过虚拟串口链接
【当前效果】
创建一个KMDF工程(KMDF Driver3),选择Win7 Debug Win32,按下F5,选择之前配置好的虚拟机,Debugger Immediate Window显示如下:
-----------------------------------------------------------------------
Starting New Debugger Session
-----------------------------------------------------------------------
-----------------------------------------------------------------------
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Opened \\.\pipe\com_1
Waiting to reconnect...
GREAT-PC\GREAT (npipe WinIDE_01D041E323FC216E) connected at Fri Feb 06 16:01:41 2015
然后在DriverEntry函数里打下了断点,让后吧生成的四个文件都放到target的桌面上(不知道哪些文件时必要的),用INSTDRV.exe,安装sys文件成功,但是启动就失败了,;之前的失败状态有“驱动服务启动失败!”;手工在设备管理器里添加驱动失败时,查看了系统日志:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。也有日志写:句柄无效。
【意外情况】
就在写下上面这段文字的过程中,意外发现,之前建立的USB Driver1启动成功了,这个程序就在默认情况下添加了一个硬件id(是插上U盘后获取的U盘ID),但是之前是失败了。但是没有启动USB Driver1工程的调试,所以也不知道能不能命中断点(现在只是想实现VS中的字符代码调试,等熟悉了基本情况后再学习纯Windbg调试)。
【希望解决的问题】
1.之前是做应用程序的,现在刚学驱动开发。希望有熟悉WDK8开发的能指导一下这个流程和注意事项。
2.上面驱动安装成功,但是启动失败是什么原因。
3.最好能推荐一下适合新手的书籍和网站。
先谢过了哈!
------解决思路----------------------
在调试驱动程序之前,请先将驱动程序在目标机上安装成功。
另外,看起来你想调试USB设备驱动,针对有物理设备的驱动程序调适开发,用虚拟机来调试可能不太合适。
【开发环境】
host:Windows7 x64 旗舰版
target:Windows7 x86 home
虚拟机:VMWare9
WDK:8.0
VS:2012
【配置方式】
host与虚拟机中的target机器通过虚拟串口链接
【当前效果】
创建一个KMDF工程(KMDF Driver3),选择Win7 Debug Win32,按下F5,选择之前配置好的虚拟机,Debugger Immediate Window显示如下:
-----------------------------------------------------------------------
Starting New Debugger Session
-----------------------------------------------------------------------
-----------------------------------------------------------------------
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Microsoft (R) Windows Debugger Version 6.2.9200.20512 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Opened \\.\pipe\com_1
Waiting to reconnect...
GREAT-PC\GREAT (npipe WinIDE_01D041E323FC216E) connected at Fri Feb 06 16:01:41 2015
然后在DriverEntry函数里打下了断点,让后吧生成的四个文件都放到target的桌面上(不知道哪些文件时必要的),用INSTDRV.exe,安装sys文件成功,但是启动就失败了,;之前的失败状态有“驱动服务启动失败!”;手工在设备管理器里添加驱动失败时,查看了系统日志:无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。也有日志写:句柄无效。
【意外情况】
就在写下上面这段文字的过程中,意外发现,之前建立的USB Driver1启动成功了,这个程序就在默认情况下添加了一个硬件id(是插上U盘后获取的U盘ID),但是之前是失败了。但是没有启动USB Driver1工程的调试,所以也不知道能不能命中断点(现在只是想实现VS中的字符代码调试,等熟悉了基本情况后再学习纯Windbg调试)。
【希望解决的问题】
1.之前是做应用程序的,现在刚学驱动开发。希望有熟悉WDK8开发的能指导一下这个流程和注意事项。
2.上面驱动安装成功,但是启动失败是什么原因。
3.最好能推荐一下适合新手的书籍和网站。
先谢过了哈!
------解决思路----------------------
在调试驱动程序之前,请先将驱动程序在目标机上安装成功。
另外,看起来你想调试USB设备驱动,针对有物理设备的驱动程序调适开发,用虚拟机来调试可能不太合适。