Frage

Wir haben eine Windows-Anwendung, die mehr PCI-Adapter verwenden kann. Diese Adapter haben alle externen physikalischen Verbindungen zu anderen Hardware oder Kabel. Unsere Software ist so konfiguriert, zu wissen, was die physikalische Verbindung auf jeder Karte verbunden ist. Stellen Sie sich vor Audio-Software, die mehrere Schall Ein- und Ausgänge unterstützt. Die Audio-Software konfiguriert ist, zu wissen, dass das Mikrofon auf Adapter 1 ist der Sänger, während die Mikrofon-Adapter 2 ist die Gitarre.

Wie es passiert, ist diese Software läuft häufig auf Laptops mit Expresscard und / oder PC-Card-Adapter. Als solches kann der Benutzer die Adapter regelmäßig entfernen. Darüber hinaus können unsere Kunden als fit viele weitere Adapter haben in einem Laptop. So können Sie sich vorstellen, dass jemand anbringt Adapter A (PC Card) und B (Express) in dem Laptop und unsere Software konfigurieren. Sie erwarten nun, dass das Mikrofon des Sängers mit der Adapter PC-Karte befestigt ist, und die Gitarre Mikrofon ist mit dem Expresscard-Adapter angebracht. Sie gehen dann ins Büro zurück, nehmen Sie die Adapter aus und legte sie in den Stapel mit allen anderen Adaptern. Am nächsten Tag, wenn sie gehen, um die Software zu benutzen, sie Adapter C (PC-Card) und D (Express) greifen. Wenn sie diese Karten in das System stecken würden wir in der Lage sein mag, dass Adapter C an der gleichen Stelle zu wissen ist, wie Adapter A war und daher ist süchtig bis zum Sänger Mikrofon und D an der gleichen Stelle wie B war und ist daher auf die Gitarre angeschlossen.

Ohne diese Funktion wird der Benutzer muß unsere Software neu konfigurieren, jedes Mal wenn sie Karten zu ändern, die nicht besonders benutzerfreundlich ist.

Gibt es eine Möglichkeit, die Lage in der PCI-Kette eines Hardware-Adapters in Windows zu bestimmen? Gibt es einen anderen Weg, um dieses Ziel zu erreichen?

Ich würde dies gerne unter Windows XP arbeiten und später. Beachten Sie, dass wir die Hardware-Treiber tun steuern, so dass wir dort Änderungen bei Bedarf machen.

War es hilfreich?

Lösung

Wie sich herausstellt, PCI Standortinformation ist verfügbar unter

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

Dabei gilt für PCI-Geräte ist so etwas wie PCI \\

Unter Windows XP dies wird Ihnen die Busnummer, Gerätenummer und Funktionsnummer. Dies ist wahrscheinlich die gleichen Informationen von http://support.microsoft.com/kb/253232 als von Steve erwähnt. Der Vorteil der Verwendung dieses Registrierungsschlüssel ist, dass Änderungen an den Treibern (einschließlich API-Änderungen) nicht benötigt werden.

Andere Tipps

Ich denke, dieser KB-Artikel ist das, was Sie brauchen.

In diesem Artikel wird beschrieben, wie Sie bekommen können die Konfiguration und die Lage Informationen (wie BusNumber, Device und Funktionsnummer) von ein Peripheral Component Interconnect (PCI) Gerät in einem Treiber, der Teil ist, des Treiberstapels des Zielgerätes entweder als Funktion oder Filtertreiber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top