7438|10

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

驱动已加载, 为什么CreateFile打不开? [复制链接]

问题如下:
做了一个驱动,加载时,XXX_Init函数里确实有相关输出信息提示驱动已经加载成功,但是CreateFile打开设备失败,用GetLastError得到的错误号为55(指定网络资源或设备不再可用)。我检查过打开的设备名(SNR1:)和驱动的设置(Index"=dword:1)是一致的,不知道哪里设置还有什么错误,请大侠们帮忙指点!!相关设置如下:


bib及注册表设置:
  ================platform.bib========================================
  WinSrDRV.dll    $(_FLATRELEASEDIR)\WinSrDRV.dll          NK SH
  ================platform.bib========================================

  ================platform.reg========================================
  [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SNR_Class]
   "Prefix"="SNR"
   "Dll"="WinSrDRV.DLL"
   "Flags"=dword:0
   "Order"=dword:0
   "Index"=dword:1
  ================platform.reg========================================

打开函数:
HANDLE hSin=CreateFile(TEXT("SNR1:"), GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

最新回复

哪位大侠知道? 是不是把注册表里的Flag值设置为DEVFLAGS_LOAD_AS_USERPROC就变成了用户模式?  详情 回复 发表于 2010-7-1 10:49
点赞 关注

回复
举报

85

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
XXX_Init函数里确实有相关输出信息提示驱动已经加载成功
这个未必成功,这个是注册表加载的时候会去执行的。
所以执行了未必成功了。
判断加载是否成功了,用远程工具 process viewer 看有没有相应的dll 才行。
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
远程工具 process viewer里没有看到相应驱动的dll,只看到我的测试程序*.exe。
请问,如果驱动加载成功的话,驱动的dll一定会显示在process viewer里?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 davisyzhou 的回复:
远程工具 process viewer里没有看到相应驱动的dll,只看到我的测试程序*.exe。
请问,如果驱动加载成功的话,驱动的dll一定会显示在process viewer里?

对,说明你没有加载成功。
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢您的回答!
想确认一下:如果加载成功的话,驱动*.Dll是直接显示在process列表里呢?
还是显示在udevice.exe的加载模块里呢?
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

6
 
CE5.0是显示在device.exe里,6.0的话估计是udevice.exe里吧
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
学习了 呵呵
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢大家的回复!!!

我测试的结果是显示在NK.exe的加载模块里,怎么不是在udevice.exe的加载模块呀,除了下面设置外,还需要做些什么?或者哪里做错了?

bib及注册表设置:
  ================platform.bib========================================
  WinSrDRV.dll $(_FLATRELEASEDIR)\WinSrDRV.dll NK SH
  ================platform.bib========================================

  ================platform.reg========================================
  [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\SNR_Class]
  "Prefix"="SNR"
  "Dll"="WinSrDRV.DLL"
  "Flags"=dword:0
  "Order"=dword:0
  "Index"=dword:1
  ================platform.reg========================================
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

9
 
显示在NK.exe里也是正常的,说明是按照默认的加载方式,加载到内核态了。
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

10
 
您好,请问要怎么做才能加载到用户态模式?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

11
 
哪位大侠知道?
是不是把注册表里的Flag值设置为DEVFLAGS_LOAD_AS_USERPROC就变成了用户模式?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表