windows - Få den aktuelt aktive driver til en enhed i C ++

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har brugt SetupAPI til at opregne alle driverne, opbygge en liste over egenskaber osv. Osv. Men hvad jeg vil, er at opregne kun Active -driverne for enhver enhed.


F.eks. For en Intel HD 5500 er der et par drivere installeret i systemet med forskellige versioner som


20.19.15.4531
20.19.15.4454


Men den version, der vises i DeviceManager, er 20.19.15.4531. Jeg skal kun få denne version.


Når jeg bruger SetupAPI, får jeg begge drivere. Jeg har prøvet løsningen opført på dette indlæg, men jeg kan bekræfte, at løsningen ikke virker for mig.


SetupDiGetSelectedDriver () også virker ikke . dvs. det virker kun, når vi installerer en driver til butikken ved hjælp af SetupAPI-funktioner.


Enhver hjælp vil blive virkelig værdsat.


Bemærk: Der er ikke noget problem med at finde og opregne driverne. Jeg bruger SetupDiBuildDriverInfoList () og SetupDiEnumDrvInfo () , og de fungerer som forventet.

Bedste reference


Endelig sluttede jeg op med at opbygge en liste over aktuelle drivere ved hjælp af WMI i c ++. Kunne ikke finde en vej ud!