Windows 2000 wdm: ни один драйвер дисплея не вызывает HwVidStartIo моего драйвера минипорта
Пишу графический драйвер минипорта для Windows NT 4.0 - 5.1. Я застрял в ситуации, когда HwVidStartIo моего драйвера минипорта никогда не вызывается.
Я ожидал, что драйвер дисплея запускает вызовы функций, отправляя запросы на videoprt.sys, а затем videoprt.sys вызывает мой HwVidStartIo. Но почему-то ни один драйвер дисплея не заботится о моем драйвере минипорта.
Нужно ли мне каким-то образом объявить или зарегистрировать драйвер моего минипорта в драйвере дисплея?
Когда система загружается, поток выглядит следующим образом:
- DriverEntry вызывается
- HwVidFindAdapter вызывается
- HwVidFindAdapter возвращает NO_ERROR / 0x00
- HwVidFindAdapter вызывается
- HwVidFindAdapter возвращает ERROR_INVALID_PARAMETER / 0x57
- HwVidFindAdapter вызывается
- HwVidFindAdapter возвращает ERROR_INVALID_PARAMETER / 0x57
- HwVidFindAdapter вызывается
- HwVidFindAdapter возвращает NO_ERROR / 0x00
- DriverEntry возвращает 0x00 (возвращаемое значение VideoPortInitialize)
- HwVidInitialize вызывается
- HwVidInitialize возвращает true / 0x01
- HwVidInitialize вызывается
- HwVidInitialize возвращает true / 0x01
1 ответ
Хорошо, я понял это.
В моем .inf-файле указано:
ТипНачала = 3 ; 3 == SERVICE_DEMAND_START
Что может быть хорошо для драйверов plug and play. Но мой не поддерживает plug and play. Поэтому мне пришлось изменить его на
ТипНачала = 1 ; 1 == СЕРВИС_СИСТЕМА_СТАРТ
Наконец я могу двигаться дальше.