驱动程序启动失败,在[HKEY_LOCAL_MACHINE\Drivers\Active]下,DLL的号码并不连贯:

ccqingzhi   2010-1-12 12:39 楼主
我写了一个GPIO的驱动,可以顺利编译并集成到OS中,查看
启动后查看[HKEY_LOCAL_MACHINE\Drivers\BuiltIn]下的DLL的信息很正常。但是DLL没有被启动

查看
[HKEY_LOCAL_MACHINE\Drivers\Active]下,DLL的号码并不连贯:
9后面的就是11了
什么理由呀?
怎么解决?哪个大侠给指点一下

回复评论 (8)

我的reg文件
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\HGPIOs]   
   "Index"=dword:1   
   "Prefix"="HGP"   
   "Dll"="HGPIO.dll"   
   "Order"=dword:0
---------------------
我的def文件:
LIBRARY HGPIO

EXPORTS

  HGPIO_Init
  HGPIO_Open
  HGPIO_Close
  HGPIO_Deinit
  HGPIO_PowerUp
  HGPIO_PowerDown
  HGPIO_IOControl
  HGPIO_Read
  HGPIO_Write


               
               
点赞  2010-1-12 12:42
[HKEY_LOCAL_MACHINE\Drivers\Active]下的9号是我自己做的一个string测试的一个框架驱动程序,它都能启动,还可以输出启动信息,不知道为什么这个启动不了。
点赞  2010-1-12 12:44
LZ所说的没启动驱动,是DLLmain都没进,还是能Init,但是,不能正常工作...?
如果初始化完,加载成功后,Active下面应该是有一个你所用驱动的值的...如果驱动压根就没进,,,那就应该是配置文件的错了...
点赞  2010-1-12 13:13
HGPIO_Init
  HGPIO_Open
  HGPIO_Close
  HGPIO_Deinit
  HGPIO_PowerUp
  HGPIO_PowerDown
  HGPIO_IOControl
  HGPIO_Read
  HGPIO_Write
这些函数要用HGP_xxx
点赞  2010-1-12 13:27
驱动加载过程中要从注册表中读取"Prefix"的值来判断调用什么xxx_Init(),这个xxx要与Prefix一致,且要三个字母。你的驱动中这些函数也要这么定义。
点赞  2010-1-12 13:29
错误找到了,是我def文件和reg文件的某些信息不对应导致的,dll本身没有问题
点赞  2010-1-12 14:09
流驱动的接口函数必须是XXX_Init格式的,Prefix只能是三个字母。
点赞  2010-1-12 19:47
引用: 引用 7 楼 sunrain_hjb 的回复:
流驱动的接口函数必须是XXX_Init格式的,Prefix只能是三个字母。


学习,恭喜大师升星星。
点赞  2010-1-12 19:54
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复