請問 要如何才能明確的得到系統內有連接哪些週邊 |
尚未結案
|
inse
一般會員 發表:5 回覆:2 積分:1 註冊:2004-06-30 發送簡訊給我 |
各位大大好, 我想在window下得知系統有連接哪一些週邊(pci usb等) ,即使他是在未安裝驅動的情形下 我在NT系列的平台是透過搜尋 register 裡面的[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI\]
下面的資料,以比對我想找的特定裝置[像RTL8139]的VID&PID 我隻到這種方法算是偷雞的方式,但是在NT系列的平台(NT&2000&XP),ㄏ 還是可以有不錯的效果,也可以透過其裝置下的子鍵[control]的存在與否判斷該裝置目前是否有連接 但是,在98-ME下可就不行了(殘念...) 所以我想問一下 各位大大們,如果想搜尋某一個PCI的裝置是否有連接上
要如何進行? 如果不會太麻煩,煩請給我一點小SAMPLE CODE 如果太麻煩,煩請給一點方向 (PS:不要太少 ^^) 先謝謝各位大大了
|
inse
一般會員 發表:5 回覆:2 積分:1 註冊:2004-06-30 發送簡訊給我 |
在等待各位大大的回應的時候,我爬了一下文
發現下面那篇文章有說到一點點: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=31772 我想請問一下,如果照上面所說的『你只要對IO 0xcf8, 0xcfc會read/write就可以scan出主機板上所有的PCI device 』 我想應該對我的問題是可行的,那麼,能否請教對0xcf8, 0xcfc 兩個位置的讀寫,所會得到的相關訊息是什麼? 或者有更詳細的說明? 麻煩各位指教了
|
inse
一般會員 發表:5 回覆:2 積分:1 註冊:2004-06-30 發送簡訊給我 |
嘿嘿 Delphi K.Top + Google 大神 應該是沒有解決不了的問題了 就像大大之前討論跟提示的,如果只是想找 PCI DEVICE 的存在的話 對 0xCF8 跟 0xCFC作 讀寫,就可以獲得相關的 VendID 跟 DevID 的數值 那如何把獲得的數值轉換成VendID 跟 DevID 勒? 這時候是 Google 大神發威的時候了,我透過 Google 找到了一行簡單好用的語法 VendID=result & 0x0000FFFF);
DevID=(result >> 16); 就可以獲得正確的資料了,剩下的是如何在WINDOW下作I/O的讀寫,這個我想在本討論區應該討論過N次了,我也就不在囉唆,我用的是在本討論區裡有人提過的WinIO的函式庫,就可以順利的解決。 以下是我的 測試CODE 跟大伙分享: (修改於WinIO 的Examples\C\WinIoTest)
#include |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |