0

我在 Xen 平台上工作,现在我想拦截 HVM 域上的中断以读取键盘的原始数据(扫描码)。

一种想法是管理程序遵循路径 UHCI 帧列表-> 与键盘设备相关的 TD-> 数据缓冲区来获取原始数据。但是,当产生中断时,TD 已经从 TD 列表中删除。这样,hypervisor就找不到数据缓冲区,也就无法读取原始数据了。

另一种思路是直接读取键盘的IOport。

我知道可以通过读取 IOport 0x60 和 0x64 来获得 PS2 键盘的输入,但我目前的工作设备是 USB 键盘。

现在我的问题是,是否可以通过直接读取 IOports 来获取 USB 键盘的输入原始数据。

如果可以,如何实现,请给我一个简单的例子。

还是有其他方法可以读取输入的原始数据?

4

1 回答 1

0

似乎没有可供客人读取此类信息的导出端口(例如,USB 键盘)。

但我发现,即使控制器成功完成数据传输,UHCI 控制器也不会自动从列表中删除 TD。删除操作在 uhci-irq 函数中完成

这样,我们就可以在调用 uhci-irq 函数之前读取数据缓冲区。

于 2011-06-08T02:52:11.243 回答