Виртуальный джойстик

Тема в разделе "WASM.NT.KERNEL", создана пользователем antil, 8 июн 2009.

  1. antil

    antil New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2009
    Сообщения:
    2
    Задача такая:
    Сделать драйвер виртуального джойстика.
    Причем с возможностью изменения его конфигурации (число осей/кнопок) и возможностью его включения/отключения из user-mode без использования админских прав.

    Я изначально написал драйвер на основе сэмпла vhidmini http://msdn.microsoft.com/en-us/library/dd163263.aspx
    Исходники - http://read.pudn.com/downloads74/sourcecode/windows/system/269588/vhidmini/sys/vhidmini.c__.htm
    Там драйвер регистрируется функцией HIDRegisterMinidriver() и при инициализации ему передается дескриптор с описанием устройства (что это джойстик с таким-то кол-вом осей и кнопок).

    Пробовал делать отключение драйвера из user-mode функцией SetupDiSetClassInstallParams/SetupDiCallClassInstaller: работает, но они требуют админских прав, к томуже это не решает задачи с изменением конфигурации джойстика.

    Т.е. мне нужно походу из user-mode вызывать свою ф-цию (через DeviceIoControl) в драйвере а уже в ней (kernel-mode) делать отключение например. Но как сделать отключение или переинициализацию (чтобы указать новое кол-во осей/кнопок) мне непонятно. Возможно ли это вообще?
     
  2. antil

    antil New Member

    Публикаций:
    0
    Регистрация:
    8 июн 2009
    Сообщения:
    2
    Видимо сложный вопрос.
    Тогда есть другой: можно ли как нибудь один драйвер отключить через другой?
    Т.е. так чтобы он пропал из диспетчера устройств и вызвалась ф-ция DriverUnload