Я работаю на платформе Xen, теперь я хочу перехватить прерывание в домене HVM, чтобы прочитать необработанные данные (код сканирования) клавиатуры.
Одна идея состоит в том, что гипервизор следует по пути UHCIсписок кадров -> TD, связанный с клавиатурным устройством -> буфер данных, чтобы получить необработанные данные.Однако когда генерируется прерванное, TD был удален из списка TD.Таким образом, гипервизор не может найти буфер данных и не может читать необработанные данные.
Другая идея заключается в том, что непосредственно читается IOport клавиатуры.
Я знаю, что возможнополучить ввод с клавиатуры PS2, читая IOport 0x60 и 0x64. Но моим текущим рабочим устройством является клавиатура USB.
Теперь мой вопрос заключается в том, можно ли получить необработанные входные данные с клавиатуры USB, непосредственно считавIOports.
Если можете, как этого добиться, приведите простой пример.
или есть другой способ чтения исходных данных ввода?