C++ 如何访问内存映射USB主机控制器寄存器?

C++ 如何访问内存映射USB主机控制器寄存器?,c++,windows-7,usb,C++,Windows 7,Usb,我正在尝试读取usb主机控制器的内存映射寄存器。据我所知,寄存器的内容应该放在内存中,从某个地址开始,特别是可以从控制器USBBASE的PCI配置寄存器中检索 我设法找到了这个地址,它似乎是有效的。至少它相当于我通过珠穆朗玛峰所能到达的高度。问题是,任何使用此地址从内存读取数据的尝试都会导致访问冲突错误。像memcpy这样的东西根本不起作用。也许有人知道读取主机控制器能力寄存器和主机控制器操作寄存器的方法? 提前谢谢。 另外,我正在使用Windows7 看来,至少在x64系统上,如果不使用任何特

我正在尝试读取usb主机控制器的内存映射寄存器。据我所知,寄存器的内容应该放在内存中,从某个地址开始,特别是可以从控制器USBBASE的PCI配置寄存器中检索

我设法找到了这个地址,它似乎是有效的。至少它相当于我通过珠穆朗玛峰所能到达的高度。问题是,任何使用此地址从内存读取数据的尝试都会导致访问冲突错误。像memcpy这样的东西根本不起作用。也许有人知道读取主机控制器能力寄存器和主机控制器操作寄存器的方法? 提前谢谢。
另外,我正在使用Windows7

看来,至少在x64系统上,如果不使用任何特殊的库,它是无法实现的。使用x32系统可能会更容易,但我没有尝试。无论如何,像这样的事情不适用于用户空间程序。
PS.写这篇文章只是为了关闭线程。

几乎可以肯定内存是受保护的,并且只能从环0内核模式访问。在Win32下,您只能从已安装的硬件驱动程序直接访问此类资源。在Win64下可能更难。在任何情况下,都不可能只使用普通的userland程序。@Managu:keyword独占。使用现有的驱动程序,如giveio,这是可能的。但系统崩溃的可能性非常大,因为现有的Windows驱动程序也将访问相同的硬件。