1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Проблемы с загрузкой драйвера

Тема в разделе "WASM.NT.KERNEL", создана пользователем AlexCasual, 12 мар 2012.

  1. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    Скомпилил пример из DDK - WinDDK\7600.16385.1\src\general\toaster\wdm\filter\,при загрузке драйвера через KmdManager вываливается ошибка :
    The service cannot be started, either because it is disabled or because it has no enabled devices...В чём может быть проблема?
     
  2. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    Вообще-то, WDM-драйвера так не устанавливаются и не запускаются. Как делать правильно, написано здесь внизу. И насколько я помню, Toaster-фильтр устанавливается только на девайсы Toaster-драйвера, т.е. сам по себе он не предназначен для запуска, только в паре с PDO/FDO-драйверами.
     
  3. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    x64
    да,спасибо,нашёл свою ошибку.
    А можно узнать в какой момент будет вызывать моя AddDevice функция?-Запускаю inf файл на установку драйвера,файлы копируются в папку /drivers, но вот сам фильтр не аттачится и мой драйвер не присутствует в списках загруженных...
     
  4. x64

    x64 New Member

    Публикаций:
    0
    Регистрация:
    29 июл 2008
    Сообщения:
    1.370
    Адрес:
    Россия
    В момент построения стека девайсов, т.е. фактически при запуске драйвера шины и/или функционального драйвера. Разумеется, при этом драйвер-фильтр должен быть корректно установлен.

    Я не знаю, какие изменения ты вносил в код Toaster, но для Windows XP, например, всё просто: запускаешь Мастер установки оборудования, указываешь путь к .inf-файлам, выбираешь из списка что-то типа "Toaster Bus Enumerator with filters", указываешь путь к трём файлам (драйвер шины, драйвер верхнего фильтра и драйвер нижнего фильтра) и получаешь в итоге автоматически запущенный драйвер шины (sc query busenum), а также два запущенных драйвера фильтров (sc query bfdolwr/bfdoupr), сидящих снизу и сверху шины соответственно.
     
  5. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    .... или как вариант лезете в реестр, находите необходимы класс устройства там и добавляете Upper/Lower filter. потом перезагружаетесь)
     
  6. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    h0t,но если руками добавлять,то какое имя прописать в UpperFilters/LowerFilters?-В примерах это имя сервиса,который добавляется в секции DefaultInstall.Services...
     
  7. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    имя драйвера, которое Вы в системе регистрируйте (то что в ветке Services)

    p.s. я точно не помню, но вроде если указать драйвер для дисковых устройств а система его не найдет то будет завис/синька.Так что будьте аккуратнее.
     
  8. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    h0t,при установке драйвера через inf файл pnp-менеджер сам регистрирует драйвер с именем,указанным в Services-секции inf файла.В самом драйвере нет никакой регистрации.Так вот вопрос в том под каким именем прописаться в UpperFilters/LowerFilters,если не использовать inf файл?
     
  9. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    h0t
    Кажится начиная с висты в реестре в таких местах только "крутые" юзеры умеют писать и удалять, так что наверное не совсем годное.

    AlexCasual
    А в inf файле посмотреть слабо? под каких он пишет , подтем и пишите.
     
  10. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Права нужны такие же как и при установке дров.
     
  11. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    shchetinin
    В чей inf файл посмотреть?! - PnP-менеджер берёт инфу из inf файла,а у нас его нет,мы пишем сами в реестр! Или я вообще уже одурел?
     
  12. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Я не понимаю что Вы хотите. ЕСЛИ не использовать INF файл то UpperFilters нужно прописывать ИМЯ ДРАЙВЕРА (при этом драйвер должен быть в Services ТОЖЕ)
     
  13. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Пример для USB:

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\driver]
    "Type"=dword:00000001
    "Start"=dword:00000000
    "ErrorControl"=dword:00000000
    "ImagePath"=hex(2) .....
    "DisplayName"="driver"

    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}]
    "UpperFilters"="driver"

    Вопросы?
     
  14. shchetinin

    shchetinin Member

    Публикаций:
    0
    Регистрация:
    27 май 2011
    Сообщения:
    715
    h0t
    А вот кажится больше надо прав, так как создается от имени system , а у нас по максималски admin.
     
  15. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    нет.

    Если на то уже пошло то имея права админа получить права системы тривиально.
     
  16. AlexCasual

    AlexCasual New Member

    Публикаций:
    0
    Регистрация:
    3 авг 2009
    Сообщения:
    120
    h0t,большое спасибо,вопросов больше не имею)