Здравствуйте, ononim, Вы писали:
O>>>>>Теоретически: пишем сервис, который открывает HID девайс тачскрина, шлет ему IOCTL_HID_ENABLE_SECURE_READ (сервис должен иметь привилегию SeTcbPrivilege) и дальнейший инпут выгребает тока наш сервис, посылая девайсу IOCTL_HID_GET_INPUT_REPORT. Мышь ограничиваем ужным дисплеем, а апликуха на другом дисплее общается с нашим сервисом и получает инпут исключительно от него.
MBG>>>>Спасибо за совет, но вызов DeviceIoControl() c IOCTL_HID_ENABLE_SECURE_READ фэйлится — GetLastError() возвращает 1 (Incorrect function). В чем может быть причина? Сервис стартует с правами LocalSystem, привилегия SeTcbPrivilege устанавливается.
MBG>>>Сорри, это я ступил — открывал USB HID мышь. Теперь открываю тач (реального устройства под рукой нет, использую виртуальный из MutliTouch Vista) : посылка IOCTL_HID_GET_INPUT_REPORT (и HidD_GetInputReport()) фейлится с ERROR_CRC.
MBG>>Апдейт: Если запустить консоль драйвера (Multitouch.Driver.Console.exe) то девайс не открывается (ERROR_SHARING_VIOLATION).
O>Ну что я могу сказать — именно эти контролы вызывает виндовые приложения, которые тачпадом заведуют. Я их ковырял както по служебной необходимости.
O>У микрософта есть пример — http://code.msdn.microsoft.com/windowshardware/HClient-HID-Sample-4ec99697 — он тоже не работает чтоли?
Хм, у меня он даже не запускается — вызов DialogBox (который видимо создает UI) возвращает 0 и приложение завершается. Пробовал то что по ссылке и то что в составе WDK — одинаково.