獲取PCI總線上任何配置頭信息
這個(gè)定義來自于以下結(jié)構(gòu)圖
當(dāng)然,如果不喜歡定義結(jié)構(gòu),那么得定義一個(gè)宏如下
Bus Number(總線):
本文引用地址:http://m.butianyuan.cn/article/201612/330385.htm有256個(gè)Bus可供查詢.當(dāng)掃描硬件時(shí),最好掃描256個(gè)Bus(從0開始編號(hào))
Device Number:
掛載在Bus上的設(shè)備,可以是顯卡,聲卡,北橋等.一個(gè)Bus最多被掛載32個(gè)設(shè)備.(從0開始編號(hào))
Function Number:
每個(gè)Device至少含有1個(gè)或者多個(gè)Function.(從0開始編號(hào))
Register Number:
最多有256個(gè)注冊(cè)標(biāo)識(shí).
好了,一切準(zhǔn)備就緒后就可以開始PCI配置信息獲取和顯示了。
先看看應(yīng)用程序中調(diào)用獲取和現(xiàn)實(shí)兩個(gè)函數(shù)的代碼,包括了如何填寫_PCI_SLOT_NUMBER結(jié)構(gòu)
注釋很清楚,ConfigData存放的是數(shù)據(jù),不是數(shù)據(jù)指針,大家要小心!Out_32和In_32是用C語言和匯編混編的函數(shù),大家參考《windows驅(qū)動(dòng)開發(fā)技術(shù)詳解》里面的代碼。
然后便是DisplayPciCommonConfig函數(shù)代碼
如果有閑心,可以完成一個(gè)類型1,類型2,類型0三種配置頭的信息顯示。
最后來看看顯示結(jié)果:(正如前面聲明的,bus=0,device=0,function=0,enable=1,register=0)
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論