cjj730
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2198回复:10

打不开设备

楼主#
更多 发布于:2002-03-21 09:27
   我用DS生成了一个简单的USB驱动程序,在安装了驱动程序之后,设备管理器中没有例出该设备,用测试程序进行测试也反应打不开设备。是否一定要有真正的设备连接上以后才能打开?

最新喜欢:

sheepoosheepo...
提问? 回答!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-21 12:32
你的inf文件中的硬件代号是不是诸如:USB\\VID_XXXX&PID_XXXX之类的?这表示要实际的硬件PNP才可用。可将其改为MyTestUSBDevice之类,就可以实现虚拟USB设备。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
cjj730
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-21 15:33
   非常谢谢,现在终于可以成功打开设备了,资源列表中也出现了相应的设备,不过列出的设备状态有点问题:“可能没有此设备,也可能此设备未正常运行,或是没有安装此设备的所有驱动程序”,要求升级驱动程序,不知这是否属于正常?
提问? 回答!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-21 16:02
当然不正常。是你的驱动程序产生了错误。驱动程序并没有加载成功。
如果你的驱动程序是做虚拟硬件的话,一定不能向设备发送实际的URB命令。比如设备描述符之类。你可以用 SoftIce调试一下,看看在哪里出现错误。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-21 18:23
  非常谢谢,现在终于可以成功打开设备了,资源列表中也出现了相应的设备,不过列出的设备状态有点问题:“可能没有此设备,也可能此设备未正常运行,或是没有安装此设备的所有驱动程序”,要求升级驱动程序,不知这是否属于正常?


我还真不相信你的设备友文体你还可以打开设备,不知道你这个打开设备怎么解释?是createfile么?
我就是我,没什么可说的。
cjj730
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-21 18:41
当然是CreateFile(...),返回的状态码翻译过来是“操作成功”,我把设备名改为“\\\\.\\c:\\文件名.扩展名”返回的也是“操作成功”。
若CreateFile()中用不正确的设备名则会返回“系统找不到指定的文件”,不信你也可以试试。
提问? 回答!
Snare
驱动小牛
驱动小牛
  • 注册日期2002-01-31
  • 最后登录2002-08-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-03-21 19:28
不会吧,你打开的是文件,不是驱动程序吧
我就是我,没什么可说的。
cjj730
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-03-22 09:33
是符号链接名“TestDevice0\"
提问? 回答!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-03-22 10:37
你的驱动程序并没有安装成功,系统随之会将其卸载,并返回错误码。在控制面版设备信息有错误码。而CreateFile对设备调用会产生IRP_MJ_CREATE调用,程序既然没有安装,肯定不可能打开设备对象。
TestDevice0是什么?是你的设备SymLink?“CreateFile(...),返回的状态码翻译过来是“操作成功”是什么意思?你得到即使有效的文件句柄,也不是你的设备句柄。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
cjj730
驱动牛犊
驱动牛犊
  • 注册日期2001-12-29
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-03-22 11:00
是这样的:我用DS生成了一个简单的USB驱动,生成的时候填了假想的VID&PID,然后我用CreateFile(“\\\\.\\TestDevice0”...)打开设备未成功,其中TestDevice0是DS自己定义的Symbolinkname。根据版主的建议,我修改了inf文件,将VID&PID去除(因为我是虚拟的设备),结果再用CreateFile打开设备,返回的是“操作已成功完成”,并返回了一个句柄。设备列表中列出的设备名确实有问题:符号为一个问号与感叹号,难道我打开的不是虚拟设备?请指教。
提问? 回答!
tigerzd
驱动老牛
驱动老牛
  • 注册日期2001-08-25
  • 最后登录2004-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-03-22 12:34
比较抱歉,我使用DDK开发驱动程序,对DS不甚了了。而且你的错误已经是具体的程序逻辑错误,只有你自己在源代码级调试才好解决。
犯强汉者,虽远必诛! [img]http://www.driverdevelop.com/forum/upload/tigerzd/2002-12-13_sf10.JPG[/img]
游客

返回顶部