Играюсь с драйвером 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?
IceStudent Я об подобном подходе уже думал. Но не понятно как в CreateService поместить драйвер с стек клавиатуры?
Хотелось бы оставить сам драйвер с минимумом изменений. Впрочем, попробовал подклучится к KeyboardClass0 - падает при нажатии на клавишу. Код (Text): UNICODE_STRING device_name; NTSTATUS status; PFILE_OBJECT file_object; PDEVICE_OBJECT device_object; DRVLOG(("try to connect the driver")); RtlInitUnicodeString(&device_name, L"\\Device\\KeyboardClass0"); status = IoGetDeviceObjectPointer(&device_name, GENERIC_ALL, &file_object, &device_object); status = KbFilter_AddDevice(DriverObject, device_object);
SCM тут не поможет, т.к. он не работает с PnP. DevCon Update - правильное решение, только в описании написано: "The specified hardware ID must exactly match the hardware ID of the device." Хинт: %DDK_Ex% = kbfiltr, *PNP0BAAD ЗЫ: Может ещё чего поправить в инфе надо.