Инсталяция драйвера из комадной строки

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

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Играюсь с драйвером kbfiltr из DDK (он подключается к стеку клавиатуры и использует IOCTL_INTERNAL_I8042_HOOK_KEYBOARD для установки своего фильтра).

    Драйвер инсталируется через device manager->keyboard->update driver->...->have disk->...

    Можно ли как нибудь проинсталировать драйвер "автоматически", т.е., без того чтоб открывать вручную device manager? То что в процессе инсталяции device manager ругается что драйвер не подписан - меня не тревожет. Пользователь может нажать несколько раз ОК.

    В DDK есть утилитка devcon для инсталяции драйверов через командную строку. Делаю:
    devcon update kbfiltr.inf *PNP0303
    выдает devcon failed.

    Может можно установить драйвер "грубо" прописав registry?
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    http://wasm.ru/print.php?article=drvw2k02
     
  3. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    IceStudent
    Я об подобном подходе уже думал. Но не понятно как в CreateService поместить драйвер с стек клавиатуры?
     
  4. IceStudent

    IceStudent Active Member

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

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Хотелось бы оставить сам драйвер с минимумом изменений.

    Впрочем, попробовал подклучится к KeyboardClass0 - падает при нажатии на клавишу.
    Код (Text):
    1. UNICODE_STRING device_name;
    2. NTSTATUS status;
    3. PFILE_OBJECT file_object;
    4. PDEVICE_OBJECT device_object;
    5. DRVLOG(("try to connect the driver"));
    6. RtlInitUnicodeString(&device_name, L"\\Device\\KeyboardClass0");
    7. status = IoGetDeviceObjectPointer(&device_name, GENERIC_ALL, &file_object, &device_object);
    8. status = KbFilter_AddDevice(DriverObject, device_object);
     
  6. Four-F

    Four-F New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2002
    Сообщения:
    1.237
    SCM тут не поможет, т.к. он не работает с PnP.

    DevCon Update - правильное решение, только в описании написано: "The specified hardware ID must exactly match the hardware ID of the device."

    Хинт: %DDK_Ex% = kbfiltr, *PNP0BAAD

    ЗЫ: Может ещё чего поправить в инфе надо.
     
  7. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Four-F
    Спасибо! То что надо!