0

システムにインストールされている PCI デバイスのリストから、PCIe デバイスを特定する必要があります。これまでのところ、機能のリストを反復処理して、デバイスに拡張キャップ構造 (キャップ ID 0x10 に対応) があるかどうかを確認してきました。また、デバイスに拡張キャップ構造がある場合、それは確かに PCIe デバイスです。ただし、この方法では一部のデバイスを識別できないようです。誰かがより良い方法を知っているかどうか疑問に思っていました。

ありがとう。

4

2 に答える 2

2

以下の方法で PCIe デバイスを取得しました。

  1. PCI デバイス コンフィグ レジスタ 0x6 bit4 = 1 (機能リストの存在状態) を確認しますか?
  2. PCI デバイス構成レジスタ 0x34 != 0 (機能ポインタが有効) かどうかを確認します。
  3. PCIe 機能 (ID = 0x10) が存在するかどうかを確認しますか?

上記のすべてが当てはまる場合、このデバイスは PCIe デバイスです!!!

「この方法では一部のデバイスを識別できない」という状況が気になります。

于 2012-10-31T03:41:40.963 に答える
0

PCI/PCIE デバイスのスキャン。機能ポインタに冗長なアドレスが含まれている可能性があります (PCI 構成スペースの破損)。

すべての B:D:F の組み合わせで機能ポインタ値に冗長性があるかどうかを確認してください。問題が見つかった場合は、BIOS ベンダーに直接連絡して修正してもらうことができます。

于 2011-09-30T06:50:44.083 に答える