質問

複数のPCIアダプターを使用できるWindowsアプリケーションがあります。これらのアダプターにはすべて、他のハードウェアまたはケーブルへの外部物理接続があります。当社のソフトウェアは、各カードの物理接続がどのような接続に接続されているかを知るように構成されています。複数のサウンド入力と出力をサポートするオーディオソフトウェアを想像してください。オーディオソフトウェアは、アダプター1のマイクがリードシンガーであり、アダプター2のマイクがギターであることを知っているように構成されています。

たまたま、このソフトウェアは、ExpressCardおよび/またはPCカードアダプターを使用してラップトップで実行されることがよくあります。そのため、ユーザーはアダプターを日常的に削除する場合があります。さらに、お客様は1つのラップトップに収まるよりも多くのアダプターを持っている場合があります。したがって、誰かがラップトップにアダプターA(PCカード)とB(ExpressCard)をインストールし、ソフトウェアを構成することを想像できます。彼らは現在、シンガーのマイクがPCカードアダプターに取り付けられ、ギターマイクがExpressCardアダプターに取り付けられていることを期待しています。その後、彼らはオフィスに戻り、アダプターを取り出して、他のすべてのアダプターとともに山に入れます。翌日、ソフトウェアを使用するとき、アダプターC(PCカード)とD(ExpressCard)をつかみます。これらのカードをシステムに接続すると、アダプターCがアダプターAと同じ場所にあるため、シンガーのマイクに接続され、dがBと同じ場所にあることを知りたいと思います。したがって、ギターに接続されています。

この機能がなければ、ユーザーはカードを変更するたびにソフトウェアを再構成する必要がありますが、これは特にユーザーフレンドリーではありません。

WindowsのハードウェアアダプターのPCIチェーン内の場所を決定する方法はありますか?この目標を達成する他の方法はありますか?

これをWindows XP以降で作業させたいと思います。ハードウェアドライバーを制御しているため、必要に応じて変更を加えることができることに注意してください。

役に立ちましたか?

解決

結局のところ、PCIの位置情報は

HKLM\SYSTEM\CurrentControlSet\Enum\<PnP ID>\LocationInformation

PCIデバイスの場合はPCI のようなものです

Windows XPでは、これにより、バス番号、デバイス番号、機能番号がわかります。これはおそらく同じ情報です http://support.microsoft.com/kb/253232 スティーブが述べたように。このレジストリの場所を使用する利点は、ドライバーの変更(APIの変更を含む)が必要ないことです。

他のヒント

おもう このKBの記事 あなたが必要とするものです。

この記事では、ターゲットデバイスのドライバースタックまたはフィルターのいずれかのドライバースタックの一部であるドライバーで、周辺コンポーネントの相互接続(PCI)デバイスの構成と位置情報(BusNumber、Devicenumber、関数番号など)を取得する方法について説明します。運転者。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top