2012-05-28 96 views
1

我想讀取usb主機控制器的內存映射寄存器。據我所知,寄存器的內容應該放在內存中,從某個地址開始,可以從控制器的PCI配置寄存器(特別是USBBASE)中檢索。如何訪問內存映射的USB主機控制器寄存器?

我設法得到這個地址,它似乎是有效的。至少它等於我能通過珠穆朗瑪峯得到的一個。問題是任何嘗試使用此地址從內存中讀取數據都會導致「訪問衝突」錯誤。類似memcpy的東西不起作用。也許有人知道如何讀取主機控制器能力寄存器和主控制器操作寄存器? 在此先感謝。 PS。我正在使用Windows 7.

+1

幾乎肯定該內存是受保護的,並且只能從ring 0(「內核模式」)訪問。在Win32下,您只能從已安裝的硬件驅動程序直接訪問這些資源。在Win64下可能更難。無論如何,這將不可能完全使用普通用戶級程序。 – Managu

+0

@Managu:關鍵字*獨家*有。使用現有的驅動程序如'giveio'可能是可能的。但是系統崩潰的可能性很大,因爲現有的Windows驅動程序也將訪問相同的硬件。 –

回答

0

好吧,似乎至少在x64系統上它不能實現而不使用任何特殊的庫。使用x32系統可能會更容易,但我沒有嘗試過。無論如何,這樣的事情不適用於用戶空間計劃。 PS。寫這只是爲了關閉線程。