Windows 2000 wdm:没有显示驱动程序调用我的微型端口驱动程序的 HwVidStartIo

Windows 2000 wdm: no display driver calls the HwVidStartIo of my miniport driver

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

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

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

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

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

好的,我明白了。

我的 .inf 文件声明:

StartType = 3 ; 3 == SERVICE_DEMAND_START

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

StartType = 1 ; 1 == SERVICE_SYSTEM_START

我终于可以继续前进了。