2012-03-15 50 views
1

我正在用C++編寫一個顯示有關PCI設備信息的應用程序。C/C++如何讀取設備內存範圍(BAR)?

我卡試圖讀取設備內存範圍(您可以從開發管理器設備屬性讀取,如下所示)

link to picture

+0

[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – 2012-03-15 14:18:10

+0

雖然有點遲,[看我對另一個答案(非常相似? )SO問題](http://stackoverflow.com/a/19793502/587467) – Tar 2013-11-05 16:31:30

回答

0

這裏的關鍵是「應用程序」。這很可能會向您顯示物理地址,這些地址(幾乎可以肯定)不會映射到應用程序的地址空間中。

您幾乎需要使用某種設備驅動程序來查看該內存。我很確定我看到一個驅動程序可以提供這樣的訪問 - 看起來就像在DDK中那樣,但是我不能確定。

+0

我有連接到我的應用程序的驅動程序,但我認爲可以從用戶模式獲取此信息。我不是很舒服,但我想讀和寫的一切都可以做到。我已經能夠從詳細信息中讀取信息(使用setupapi.dll) – kivrin 2012-03-15 14:33:27

+0

Windows沒有用於直接訪問硬件存儲器地址的API嗎? – Spidey 2012-03-15 14:33:27

+0

@Spidey:無論如何,我不知道。 – 2012-03-15 14:37:02