Windows 2000 wdm: ни один драйвер дисплея не вызывает HwVidStartIo моего драйвера минипорта

Пишу графический драйвер минипорта для 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

1 ответ

Хорошо, я понял это.

В моем .inf-файле указано:

ТипНачала = 3 ; 3 == SERVICE_DEMAND_START

Что может быть хорошо для драйверов plug and play. Но мой не поддерживает plug and play. Поэтому мне пришлось изменить его на

ТипНачала = 1 ; 1 == СЕРВИС_СИСТЕМА_СТАРТ

Наконец я могу двигаться дальше.

Другие вопросы по тегам