1

我正在为 Windows NT 4.0 - 5.1 编写图形微型端口驱动程序。我陷入了这种情况,我的微型端口驱动程序的 HwVidStartIo 永远不会被调用。

我希望显示驱动程序通过向 videoprt.sys 发送请求来触发函数调用,然后 videoprt.sys 调用我的 HwVidStartIo。但不知何故,没有显示驱动程序关心我的微型端口驱动程序。

我是否需要以某种方式向显示驱动程序宣布或注册我的微型端口驱动程序?

当系统启动时,流程是这样的:

  1. DriverEntry 被调用
  2. HwVidFindAdapter 被调用
  3. HwVidFindAdapter 返回 NO_ERROR/0x00
  4. HwVidFindAdapter 被调用
  5. HwVidFindAdapter 返回 ERROR_INVALID_PARAMETER/0x57
  6. HwVidFindAdapter 被调用
  7. HwVidFindAdapter 返回 ERROR_INVALID_PARAMETER/0x57
  8. HwVidFindAdapter 被调用
  9. HwVidFindAdapter 返回 NO_ERROR/0x00
  10. DriverEntry 返回 0x00(VideoPortInitialize 的返回值)
  11. HwVidInitialize 被调用
  12. HwVidInitialize 返回 true/0x01
  13. HwVidInitialize 被调用
  14. HwVidInitialize 返回 true/0x01
4

1 回答 1

0

好的,我想通了。

我的 .inf 文件指出:

开始类型 = 3 ; 3 == SERVICE_DEMAND_START

这对于即插即用驱动程序可能很好。但是我的不兼容即插即用。所以我不得不把它改成

开始类型 = 1 ; 1 == SERVICE_SYSTEM_START

终于我可以继续前进了。

于 2022-01-02T04:36:02.883 回答