Кроссплатформенный драйвер

Тема в разделе "WASM.NT.KERNEL", создана пользователем lukash, 16 сен 2007.

  1. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    Всем привет!

    Хочу сделать кроссплатформенный драйвер, чтоб как и на 98 работал, так и выше.
    На данный момент умею только VxD составлять, и еще немного разобрался с драйверами по статьям Four-F. Хочу сделать чет типа динамического VxD. Вроде как кроссплатформенные драйвера - это WDM?

    Но не могу найти как такой драйвер загрузить. В основном через *.inf пишут, а загрузить как динамич. VxD его нельзя?
    Если не сложно, покажите плз. каркас загрузчика такого драйвера и драйвер к нему.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    кроссплатформенными драйвера не бывают.
     
  3. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    n0name
    А разве WDM не совместим на уровне исходного кода (или даже скомпилиного драйвера) с Windows 98/ME/2000/XP ??
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    возможно совместим, но WMD никак не кроссплатформен.
     
  5. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    Чет чем больше гуглю тем больше запутываюсь:) Вроде как sys нужно, но ведь WDM это тоже sys?
    Так все же, какой драйвер нужно писать, чтоб и под 98 и под ХР работало?
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    из
    Programming the Microsoft Windows Driver Model / Walter Oney -- 2nd ed.
     
  7. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    С WDM вроде как немного разобрался, работает и под 98 и под ХР. Но не очень понравилось то, что их нужно вручную инсталлировать с помощью *.inf перед использованием. Все-таки загрузчик к нему нельзя сделать?

    А нельзя заставить работать еще какой-нибудь NT драйвер в 98, кроме WDM? Т.е. один и тот же драйвер загружать загрузчиком, ко в каждой OC по разному?
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    lukash
    Это только в 9x, в NT они же динамически загружаются. А зачем тебе это? Почему не два экземпляра драйвера (wdm/vxd), раз уж важна динамическая загрузка.

    Потом, inf можно и программно установить.
     
  9. Miller Rabin

    Miller Rabin New Member

    Публикаций:
    0
    Регистрация:
    4 янв 2006
    Сообщения:
    185
    Ну вот я пишу сейчас минидрайвер для ТВ-Тюнера и как сделать так, чтобы работал без инф файла фиг его знает. Функция StreamClassRegisterMinidriver завершается ошибкой если запускать его через StartService, а не инф файлом.
     
  10. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    Да в общем то динамическая загрузка не так уж и важна, просто после поправки кода драйвера, нужно его постоянно переустанавливать, а с динамически загружаемым проще было бы. Да и так, интересно просто...

    А можно немного подробнее?
     
  11. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
  12. lukash

    lukash New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2006
    Сообщения:
    142
    Спасибо, буду разбираться.
     
  13. newMaximYCH

    newMaximYCH New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2007
    Сообщения:
    209
    Ну как вариант - а нельзя ли сделать след:
    1) Узнаём версию винды
    2) Если не совсем то, что надо, то инсталируем вместе с драйвом ещё и мал. прогу в которой есть функции, которых нет в версии ос.
    3) Когда драйвер обращается к API за чем-то, чего нет, происходит ошибка, которую ловим и производим поиск такой функции в доп. проге (программировал я на дельфаех, по этому возможно в асме это гораздо сложнее (хотя в принципе и такого не делал на дельфаях, чисто теоретически говорю))
     
  14. sp3cz

    sp3cz New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2007
    Сообщения:
    68
    newMaximYCH
    кури меньше пацан
     
  15. newMaximYCH

    newMaximYCH New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2007
    Сообщения:
    209
    sp3cz
    Где именно я ошибся? как мне кажется ошибку API отловить невозможно, ты про это?
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    кошмар. учи матчать
     
  17. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    В своей ДНК.
     
  18. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    :)) Почему же так жестоко? Ну не шарит просто в етом...
     
  19. EP_X0FF

    EP_X0FF New Member

    Публикаций:
    0
    Регистрация:
    13 авг 2006
    Сообщения:
    450
    Поищи его посты и все поймешь. У аффтара синдром кулхацкера и култимбилдера в одном стакане.
     
  20. Mi256

    Mi256 New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2007
    Сообщения:
    116
    Ага, теперь всё понятно... :))