Задача такая: различить с какой из клавиатур пришло событие нажатия кнопки и блокировать его для одной из них.
Пример: ноутбук со встроенной клавиатурой и подключенная внешняя USB клавиатура. Встроенная работает как обычно, ввод с внешней блокируется (одновременно с блокировкой производятся некоторые действия, в зависимости от нажатой кнопки; получается эдакий USB-контроллер).
Проштудировав SetWindowsHookEx понял, что различить с какой именно клавиатуры пришло событие нажатие невозможно, других способов в юзер-може не знаю (если кто знает, подскажите, это сильно облегчит задачу).
Вариант на котором остановился — самописный фильтр-драйвер, на основе kbfiltr: ловит нажатия, очищает очередь, тем самым блокируя ввод с точки зрения системы. Проблема только в том, что для работы этого драйвера нужно стандартный драйвер определенной клавиатуры заменить на этот. Если нужно несколько клавиатур-контроллеров, то драйвер каждой клавы нужно заменить.
Вопрос такой, можно ли сделать такой драйвер, который не привязывался бы к конкретной железке-клавиатуре, а устанавливался бы однократно в системе и ловил ввод от всех клавиатур? По параметру KEYBOARD_INPUT_DATA::UnitId как я понимаю можно определить от какой клавиатуры пришло событие.