我在Xen平台上工作,现在我想在HVM域上拦截中断,以读取键盘的原始数据(扫描码)。
一种想法是虚拟机管理程序遵循与键盘设备->数据缓冲区相关的路径UHCI frame list-> TD来获取原始数据。然而,当产生中断时,该TD已从TD列表中删除。这样,系统管理程序就无法找到数据缓冲区,也无法读取原始数据。
另一个想法是直接读取键盘的IOport。
我知道可以通过读取USB0x60和0x64来获得PS2键盘的输入,但我现在的工作设备是IOport键盘。
现在我的问题是,是否可以通过直接读取IOports来获取U盘输入的原始数据。
如果可以,如何实现,请给我一个简单的例子。
或者,是否有其他方法可以读取输入的原始数据?
发布于 2011-06-08 10:52:11
似乎没有可供来宾读取此类信息的导出端口(例如USB键盘)。
但我发现,即使控制器成功完成数据传输,UHCI控制器也不会自动将TD从列表中删除。删除操作在uhci-irq函数中完成
这样,我们就可以在调用函数uhci-irq之前读取数据缓冲区。
https://stackoverflow.com/questions/6122361
复制相似问题