Программирование драйверов Windows

         

Legacy Driver, NT Style Driver


Унаследованный драйвер (устаревший драйвер), драйвер в-стиле-NT. Драйвер, который не является WDM драйвером, работает не с PnP устройством (если вообще работает с реальными устройствами) и не участвует в обмене данными по поводу изменений в энергоснабжении. При компиляции использует только определения из файла ntddk.h, отчего может в полной мере пользоваться устаревшими функциями HalGetBusData, HalGetInterruptVector и т.п., но зато должен надеяться только на свои способности, поскольку у него нет могущественных прародителей в лице шинных драйверов, способных предоставить поддержку.

"Правильный" драйвер в-стиле-NT может быть запущен и остановлен при помощи программы Monitor (из состава пакета Numega Kernel Driver) или процедурами SCM Менеджера. При наличии PnP вкраплений (в частности, из-за наличия зарегистрированной процедуры для обработки IRP_MJ_PNP запросов) эта возможность исчезает.

Следует обратить внимание, что при компиляции кода с использованием ntddk.h, не только становятся недоступными отдельные функции, открытые раннее (для модели WDM), но и изменяется назначение некоторых все еще доступных функций и полей внутри доступных структур. Тем не менее, подключение такого типа драйверов к другим драйверам по-прежнему возможно (при помощи вызовов IoAttachDeviceToDeviceStack

или IoAttachDevice).

Драйверы "в-стиле-NT" совершенно не обязаны работать под Win98 (из-за использования специфических функций), и это иногда может стать существенной проблемой разработчика.



Содержание раздела