我可以通过直接读取USB键盘的IOport来获取输入数据吗

我可以通过直接读取USB键盘的IOport来获取输入数据吗,io,keyboard,usb,xen,Io,Keyboard,Usb,Xen,我在Xen平台上工作,现在我想截取HVM域上的中断,以读取键盘的原始数据(扫描代码) 一个想法是,hypervisor按照路径UHCI frame list->TD related to keyboard device->data buffer获取原始数据。但是,当生成中断时,TD已从TD列表中删除。这样,虚拟机监控程序就无法找到数据缓冲区,也无法读取原始数据 另一个想法是直接读取键盘的IOport 我知道通过读取IOport 0x60和0x64可以获得PS2键盘的输入 但我目前的工作设备是US

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

一个想法是,hypervisor按照路径UHCI frame list->TD related to keyboard device->data buffer获取原始数据。但是,当生成中断时,TD已从TD列表中删除。这样,虚拟机监控程序就无法找到数据缓冲区,也无法读取原始数据

另一个想法是直接读取键盘的IOport

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

现在我的问题是,是否有可能获得USB键盘输入的原始数据 通过直接阅读IOports

如果可以,如何做到这一点,请给我一个简单的例子


或者是否有其他方法读取输入的原始数据?

似乎没有导出端口(如USB键盘)供来宾读取此类信息

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

通过这种方式,我们可以在涉及函数uhci irq之前读取数据缓冲区