Всем привет! Хочу сделать кроссплатформенный драйвер, чтоб как и на 98 работал, так и выше. На данный момент умею только VxD составлять, и еще немного разобрался с драйверами по статьям Four-F. Хочу сделать чет типа динамического VxD. Вроде как кроссплатформенные драйвера - это WDM? Но не могу найти как такой драйвер загрузить. В основном через *.inf пишут, а загрузить как динамич. VxD его нельзя? Если не сложно, покажите плз. каркас загрузчика такого драйвера и драйвер к нему.
n0name А разве WDM не совместим на уровне исходного кода (или даже скомпилиного драйвера) с Windows 98/ME/2000/XP ??
Чет чем больше гуглю тем больше запутываюсь Вроде как sys нужно, но ведь WDM это тоже sys? Так все же, какой драйвер нужно писать, чтоб и под 98 и под ХР работало?
С WDM вроде как немного разобрался, работает и под 98 и под ХР. Но не очень понравилось то, что их нужно вручную инсталлировать с помощью *.inf перед использованием. Все-таки загрузчик к нему нельзя сделать? А нельзя заставить работать еще какой-нибудь NT драйвер в 98, кроме WDM? Т.е. один и тот же драйвер загружать загрузчиком, ко в каждой OC по разному?
lukash Это только в 9x, в NT они же динамически загружаются. А зачем тебе это? Почему не два экземпляра драйвера (wdm/vxd), раз уж важна динамическая загрузка. Потом, inf можно и программно установить.
Ну вот я пишу сейчас минидрайвер для ТВ-Тюнера и как сделать так, чтобы работал без инф файла фиг его знает. Функция StreamClassRegisterMinidriver завершается ошибкой если запускать его через StartService, а не инф файлом.
Да в общем то динамическая загрузка не так уж и важна, просто после поправки кода драйвера, нужно его постоянно переустанавливать, а с динамически загружаемым проще было бы. Да и так, интересно просто... А можно немного подробнее?
Ну как вариант - а нельзя ли сделать след: 1) Узнаём версию винды 2) Если не совсем то, что надо, то инсталируем вместе с драйвом ещё и мал. прогу в которой есть функции, которых нет в версии ос. 3) Когда драйвер обращается к API за чем-то, чего нет, происходит ошибка, которую ловим и производим поиск такой функции в доп. проге (программировал я на дельфаех, по этому возможно в асме это гораздо сложнее (хотя в принципе и такого не делал на дельфаях, чисто теоретически говорю))