设备 xxx_init 未被调用
Device xxx_init not getting called
我编写了一个简单的流驱动程序来学习设备驱动程序,因为我只有 DLLEntry、Init 和 DeInit 函数,而且我已经将所有函数导出到 .def 文件中。
我还在 HKLM/Drivers/Sample 中添加了驱动程序的注册表设置。
我编写了一个应用程序来测试它的工作情况,我在其中使用以下路径调用了 ActivateDeviceEx。
正在调用我的 DLLEntry 函数,但未调用 Init 函数。我正在使用 RETAILMSG 宏来打印调试信息。
我也看到了 post 1 他也面临同样的问题
但我不明白我们必须做些什么才能让它工作...
DllEntry 被调用但 Init 并未暗示函数导出存在问题。流驱动程序 must export at least the following:
- 初始化
- 取消初始化
- 打开
- 关闭
- 阅读
- 写入
- 寻求
- IOControl
此外,除非注册表中的 Flags 值包含 DEVFLAGS_NAKEDENTRIES,否则每个函数都必须以设备名称为前缀,因此如果驱动程序支持 XYZ 设备,则函数必须命名为 XYZ_Init, XYZ_Deinit, 等等
我编写了一个简单的流驱动程序来学习设备驱动程序,因为我只有 DLLEntry、Init 和 DeInit 函数,而且我已经将所有函数导出到 .def 文件中。
我还在 HKLM/Drivers/Sample 中添加了驱动程序的注册表设置。
我编写了一个应用程序来测试它的工作情况,我在其中使用以下路径调用了 ActivateDeviceEx。
正在调用我的 DLLEntry 函数,但未调用 Init 函数。我正在使用 RETAILMSG 宏来打印调试信息。
我也看到了 post 1 他也面临同样的问题
但我不明白我们必须做些什么才能让它工作...
DllEntry 被调用但 Init 并未暗示函数导出存在问题。流驱动程序 must export at least the following:
- 初始化
- 取消初始化
- 打开
- 关闭
- 阅读
- 写入
- 寻求
- IOControl
此外,除非注册表中的 Flags 值包含 DEVFLAGS_NAKEDENTRIES,否则每个函数都必须以设备名称为前缀,因此如果驱动程序支持 XYZ 设备,则函数必须命名为 XYZ_Init, XYZ_Deinit, 等等