<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 獲取PCI總線上任何配置頭信息

          獲取PCI總線上任何配置頭信息

          作者: 時間:2016-12-15 來源:網(wǎng)絡 收藏

          這個定義來自于以下結(jié)構(gòu)圖

          當然,如果不喜歡定義結(jié)構(gòu),那么得定義一個宏如下
          #define CONFIG_ADDRESS(f, Bus, Device, Function, Registery)
          ((f<<31) | (Bus<<24) | (Device<<16) | (Function<<8) | (Registry<<2))
          關于這幾個參數(shù)的含義:

          Bus Number(總線):

          本文引用地址:http://www.ex-cimer.com/article/201612/330385.htm

          有256個Bus可供查詢.當掃描硬件時,最好掃描256個Bus(從0開始編號)

          Device Number:

          掛載在Bus上的設備,可以是顯卡,聲卡,北橋等.一個Bus最多被掛載32個設備.(從0開始編號)

          Function Number:

          每個Device至少含有1個或者多個Function.(從0開始編號)

          Register Number:

          最多有256個注冊標識.0-3F用于PCI總線的特殊用途;40-FF用于自定義.

          好了,一切準備就緒后就可以開始PCI配置信息獲取和顯示了。

          先看看應用程序中調(diào)用獲取和現(xiàn)實兩個函數(shù)的代碼,包括了如何填寫_PCI_SLOT_NUMBER結(jié)構(gòu)



          現(xiàn)在給出DisplayPciCommonConfig的代碼(devicename由GetInterfaceName函數(shù)得來,關于這個函數(shù)的實現(xiàn),參考之前的獲取WDM接口名稱方法博文)


          注釋很清楚,ConfigData存放的是數(shù)據(jù),不是數(shù)據(jù)指針,大家要小心!Out_32和In_32是用C語言和匯編混編的函數(shù),大家參考《windows驅(qū)動開發(fā)技術詳解》里面的代碼。

          然后便是DisplayPciCommonConfig函數(shù)代碼



          如果有閑心,可以完成一個類型1,類型2,類型0三種配置頭的信息顯示。

          最后來看看顯示結(jié)果:(正如前面聲明的,bus=0,device=0,function=0,enable=1,register=0)




          上一頁 1 2 下一頁

          關鍵詞: PCI總線配置頭信

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();