windows - Spørgsmål vedrørende guidInstance i DirectInput bibliotek; omhandler også opsummering af enheder

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad angår vejledning i DIDEVICEINSTANCE


Microsoft siger:



  Unik identifikator for enhedens instans. En applikation kan gemme forekomsten globalt unik identifikator (GUID) i en konfigurationsfil og bruge den på et senere tidspunkt. Instans GUID'er er specifikke for en bestemt computer. En instans GUID opnået fra en computer er ikke relateret til eksempel GUID'er på en anden.



Så hvis jeg forbinder min enhed til computeren og mit program gør opgørelsen og finder guiden, skal jeg nogensinde opregne? Selvom brugeren tilslutter og frakobler enheden. Hvis en anden enhed af samme type er tilsluttet, erkender den stadig, at den anden enhed ikke er den samme som den første og derfor kræver en anden guid? Skal jeg bare genregistrere alle grænsefladerne hele tiden, kører mit program for at finde min enhed eller er det nok nok til en given pc?


Tak.

Bedste reference


Jeg forsøger faktisk at løse et lignende problem. Ifølge MSDN her ser det ud til, at InstanceGUID altid skal være det samme på samme computer. Jeg har verificeret, at hvis jeg fjerner min USB-enhed og sætter den i en anden port, det holder faktisk den samme Instance GUID. Men hvis en anden bruger logger ind på den samme pc, viser DirectInput den samme enhed, der har en anden InstanceGUID !! Jeg kan ikke finde nogen anerkendelse fra Microsoft, at dette er et kendt problem. [1]


Så jeg kan delvist besvare dit spørgsmål. Hvis du har to identiske enheder, får du forskellige InstanceGUID'er og identiske ProductGUIDs. Disse InstanceGUIDs forbliver konsistente, hvis du fjerner dine enheder og flytter dem til forskellige USB-porte. I modsætning hertil får du forskellige InstanceGUID'er, hvis en anden bruger logger ind. I det mindste kan jeg kontrollere, at dette er et problem på Windows 7 64bit.

Andre referencer 1


InstanceGuid vil altid være en unik identifikator for hver enhed, der er tilsluttet - men hvis du fjerner installationsoplysningerne (f.eks. Afinstallation af en usb-enhed) mister du også denne InstanceGuid. Enheden får nogle nye uforudsigelige guider, når de tilsluttes igen.


ProductGuid vil altid være den samme for en enhed, da den er gemt i USB HID chip-enhederne. Det kan ske, selvom to enheder af samme type har samme ProductGuid. Hvis de gør det, kan de kun identificere dem ved deres InstanceGuid (som i nogle tilfælde kan blive ugyldig, som skrevet ovenfor ...).