设备xxx_init未被调用

时间:2015-07-23 05:53:42

标签: c dll windows-ce

我写了一个简单的流驱动程序来学习设备驱动程序,因为我只有DLLEntry,Init和DeInit函数,而且我已经将所有函数导出到.def文件中。

我还在HKLM / Drivers / Sample中添加了驱动程序的注册表设置。

我写了一个应用程序来测试它的工作,我用以下路径调用了ActivateDeviceEx。

我的DLLEntry函数被调用,但是没有调用Init函数。我正在使用RETAILMSG宏来打印调试信息。

我也看过帖子1,他也面临同样的问题

但我不明白我们要做些什么让它起作用......

1 个答案:

答案 0 :(得分:0)

DllEntry被调用的事实但是Init没有暗示函数exports的问题。流驱动程序must export at least the following

  • 初始化
  • DEINIT
  • 打开
  • 关闭
  • 的IOControl

此外,除非注册表中的Flags值包含DEVFLAGS_NAKEDENTRIES,否则每个函数都必须以设备名称为前缀,因此如果驱动程序支持,例如,XYZ设备,则必须将这些函数命名为XYZ_Init,XYZ_Deinit等。