「そうです、PciFindDeviceはこの構造体にベンダーIDとデバイスIDの情報を格納し、PCIデバイスを確定し、そのデバイスのコンフィギュレーションレジスタの値をこの中に書き込んでいるんです。」
「・・・・・。」
「PCIデバイスの先頭から64バイトはコンフィギュレーションレジスタ空間ヘッダといって、PCIバスの仕様で、決定されている領域です。
ベンダーが固有のカスタマイズする領域はベースアドレスからなんですよ。」
「・・・・・。」
「つまり、PCIバスの仕様で、通常ベンダーがI/O空間として、あるいはメモリ空間として構築できる領域はベースアドレスレジスタからです。」
「つまり・・・?」
「つまりベースアドレスレジスタがマニュアルでいうI/Oベースアドレスです。」
「すばらしい・・・!!!明白!!・・・ということはマニュアルに書いてある0+8h とか 0+0Chはベースアドレスから何番地離れているか(オフセット値)を示していたわけか!!
つまり、ボード検出時に取得しなければならないものは・・・ベースアドレス!!
・・・ベースアドレスといえば・・
dwBaseAddr[0];
のことですか!!」
「そうですね・・・それともうひとつあります。割り込みレベルです・・・ADボードは割り込みを使用するんでしょ?」
「なるほど・・・!!」
|