獲取PCI總線上任何配置頭信息
書上用的是傳到驅(qū)動層,然后在操作端口,獲取的數(shù)據(jù)在應(yīng)用層顯示。不過這種方法不是很喜歡,比較喜歡在驅(qū)動層開啟I/O位圖位,然后讓應(yīng)用層擁有端口操作權(quán)限。所以,在看本博文之前,請先熟悉之前的關(guān)于在應(yīng)用層開啟端口操作權(quán)限的相關(guān)函數(shù)講解的博文,寫好一個驅(qū)動,能開啟端口讀取權(quán)限。然后再繼續(xù)閱讀本文。
以下是類型0的PCI配置結(jié)構(gòu):
如果看不懂,那需要回去復習數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)哦。這個圖很簡單,總共256個字節(jié)。自己可以寫一個結(jié)構(gòu)去接受這個數(shù)據(jù),但是書上給了現(xiàn)成的,我也就偷偷懶,注釋了1一個重要的地方(40h-FFh)。下面來看看書上結(jié)構(gòu)的巧妙之處。下面三個常量,便是3種類型中基地址數(shù)組大小。(下面結(jié)構(gòu)是一起的,只是分了幾張圖發(fā),方便講解)
類型0配置頭不同的地方
類型1配置頭不同的地方
類型2配置頭的不同
類型2配置頭的不同
這里充分說明union聯(lián)合聲明的好用。
書上定義了一個_PCI_SLOT_NUMBER結(jié)構(gòu)位結(jié)構(gòu),但是沒定義完,還要自己進行位操作。為了方便,我直接把這個結(jié)構(gòu)完善了,每次填寫就可以了。
關(guān)鍵詞:
PCI總線配置頭信
評論