我在 Xen 平台上工作,现在我想拦截 HVM 域上的中断以读取键盘的原始数据(扫描码)。
一种想法是管理程序遵循路径 UHCI 帧列表-> 与键盘设备相关的 TD-> 数据缓冲区来获取原始数据。但是,当产生中断时,TD 已经从 TD 列表中删除。这样,hypervisor就找不到数据缓冲区,也就无法读取原始数据了。
另一种思路是直接读取键盘的IOport。
我知道可以通过读取 IOport 0x60 和 0x64 来获得 PS2 键盘的输入,但我目前的工作设备是 USB 键盘。
现在我的问题是,是否可以通过直接读取 IOports 来获取 USB 键盘的输入原始数据。
如果可以,如何实现,请给我一个简单的例子。
还是有其他方法可以读取输入的原始数据?