SetupDixxx

Тема в разделе "WASM.WIN32", создана пользователем ksu_ant, 10 май 2006.

  1. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Здравствуйте!

    Возникла необходимость написать свой инсталлятор/деинсталлятор.

    Он, помимо программ, должен установить драйвер-фильтр.

    Этот драйвер должен фильтровать обмен данными, допустим, с принтером (может быть другое устройство). Проблема в следующем:

    1. Как осуществить установку фильтра с помощью SetupDixxx функций. (В принципе, у меня есть кое-какие исходники и плюс примеры DDK, но если у кого есть расширенные примеры - предложите, буду очень рад :derisive:)

    2. Основная проблема! Кроме устройства Принтер, можно работать с устройством Порт Принтера (в реестре - AttachedTo), например LPT1. Как, с помощью SetupDixxx определить все устройства, сопоставленные с принтером и установить фильтр на них? И еще - как обрабатывается ситуация с "мудреными" символическими ссылками (например такая ссылочка:
    Код (Text):
    1. \\?\ACPI#PNP0401#4&2a083901&0#{97f76ef0-f883-11d0-af1f-0000f800845c}
    . Можно ли по ней открыть LPT? Если можно, как перечислить все такие ссылки, сопоставленные с принтером и его портом, и поставить на них фильтр.

    Заранее благодарен за ответы.
     
  2. SolidCode

    SolidCode New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2002
    Сообщения:
    162
    Адрес:
    Kazakhstan
    Могу выслать исходник по нахождению CD-ROM с помощью этих функций. Если поможет. Вообще это из базы знаний Microsoft. Легко гуглится по слову "EnumCD".
     
  3. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Спасибо за ответ.

    Этот пример у меня есть. В принципе, проблему я уже решил, только еще решение не написал :) - некогда пока.

    Только я решил отказаться все-таки от SetupDi.

    Но, если у кого-нибудь есть пример установки драйвера с использованием SetupDi и он (она) желает выложить сюда, - конечно же буду рад.
     
  4. ksu_ant

    ksu_ant New Member

    Публикаций:
    0
    Регистрация:
    28 сен 2005
    Сообщения:
    273
    Добрый день!

    Думал, проблему решил, оказывается - только приобрел :-(

    В общем, делать пришлось через SetupDi-функции, так как система не пускает к некоторым нужным разделам реестра напрямую.

    Взял пример src\storage\addfilter. Переписал немножко, но основные функции не менял.

    Частично взял код перечисления CD-ROM.

    Проблема в следующем. Устанавливаю драйвер, все работает (фильтруется). Перезагружаю комп - пробую. Пишет - устройство не настроено.

    Такое было, когда я не выполнял Restart после установки (симптомы были такими же, только не работало даже до перезагрузки).

    Есть программка (не моя), которая устанавливает мой фильтр правильно, так что проблема не в драйвере.

    Выкладываю код.

    Кто знает в чем проблема, пожалуйста напишите, если не трудно.

    [​IMG] 1634522294__main.rar