Domanda

Abbiamo un'applicazione Windows che può utilizzare adattatori PCI multipli. Queste schede hanno tutti i collegamenti fisici esterni ad altri hardware o cavi. Il nostro software è configurato in modo da sapere ciò che la connessione fisica su ogni carta è collegato. Immaginate software audio che supporta più ingressi e uscite audio. Il software audio è configurato per sapere che il microfono sull'adattatore 1 è il cantante, mentre il microfono dell'adattatore 2 è la chitarra.

Si dà il caso, questo software è spesso eseguito su computer portatili con ExpressCard e / o adattatori PC Card. Come tale, l'utente può rimuovere regolarmente gli adattatori. Inoltre, i nostri clienti possono avere molti adattatori di più in forma in un computer portatile. Quindi, si può immaginare che installa qualcuno adattatori A (PC Card) e B (ExpressCard) nel computer portatile e configura il nostro software. Essi si aspettano che il microfono del cantante è collegato al adattatore per schede PC e il microfono chitarra è collegato all'adattatore ExpressCard. Poi tornano in ufficio, prendere gli adattatori fuori e metterli nel mucchio con tutti gli altri adattatori. Il giorno dopo, quando vanno a utilizzare il software si afferrano adattatori C (PC Card) e D (ExpressCard). Quando la spina queste carte al sistema vorremmo essere in grado di sapere che l'adattatore C è nello stesso punto come adattatore A era ed è quindi fino agganciato al cantante del microfono e che D sia nello stesso posto di B era ed è quindi collegato alla chitarra.

Senza questa funzione l'utente dovrà riconfigurare il nostro software ogni volta che cambiano le carte, il che non è particolarmente facile da usare.

C'è un modo per determinare la posizione nella catena del PCI di un adattatore hardware in Windows? C'è un altro modo per raggiungere questo obiettivo?

Vorrei questo per funzionare su Windows XP e versioni successive. Nota che facciamo controllare i driver hardware, in modo che possiamo apportare le modifiche lì, se necessario.

È stato utile?

Soluzione

Come si è visto, le informazioni sulla posizione del PCI è disponibile sotto

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

Dove per i dispositivi PCI è qualcosa di simile PCI \\

In Windows XP questo vi dirà il numero di bus, dispositivo Numero e numero di funzione. Questa è probabilmente la stessa informazione da http://support.microsoft.com/kb/253232 come citato da Steve. Il vantaggio di utilizzare questa posizione del Registro è quanto varianti driver (comprese le modifiche API) non sono necessari.

Altri suggerimenti

questo articolo KB è quello che ti serve.

  

In questo articolo viene descritto come è possibile ottenere   la configurazione e la posizione   informazioni (come BusNumber,   DeviceNumber, e numero di funzione) di   Interconnect un Peripheral Component   (PCI) dispositivo in un driver che fa parte   della stack del driver del dispositivo di destinazione   sia come driver di funzione o di filtro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top