2012-05-28 45 views
1

我想读取usb主机控制器的内存映射寄存器。据我所知,寄存器的内容应该放在内存中,从某个地址开始,可以从控制器的PCI配置寄存器(特别是USBBASE)中检索。如何访问内存映射的USB主机控制器寄存器?

我设法得到这个地址,它似乎是有效的。至少它等于我能通过珠穆朗玛峰得到的一个。问题是任何尝试使用此地址从内存中读取数据都会导致“访问冲突”错误。类似memcpy的东西不起作用。也许有人知道如何读取主机控制器能力寄存器和主控制器操作寄存器? 在此先感谢。 PS。我正在使用Windows 7.

+1

几乎肯定该内存是受保护的,并且只能从ring 0(“内核模式”)访问。在Win32下,您只能从已安装的硬件驱动程序直接访问这些资源。在Win64下可能更难。无论如何,这将不可能完全使用普通用户级程序。 – Managu

+0

@Managu:关键字*独家*有。使用现有的驱动程序如'giveio'可能是可能的。但是系统崩溃的可能性很大,因为现有的Windows驱动程序也将访问相同的硬件。 –

回答

0

好吧,似乎至少在x64系统上它不能实现而不使用任何特殊的库。使用x32系统可能会更容易,但我没有尝试过。无论如何,这样的事情不适用于用户空间计划。 PS。写这只是为了关闭线程。