Salve a tutti,
in un applicativo che sto sviluppando ho la necessità di leggere i codici seriali dei device che enumero.
L'applicativo, in pratica, ha la necessità di trovare il device corrispondente al volume dal quale è stato avviato e, una volta fatto, leggere il seriale del device stesso in modo da segnarselo e nel caso in cui volume venga smontato (ad es un pennino usb) chiudersi.
Il programma fa già tutte le varie operazioni tranne quella di confrontare i seriali perché sinceramente non so come estrarli!
L'applicativo lavora esclusivamente su dei pennini usb quindi gli unici device con i quali devo trattare sono quelli e da quanto ho visto dal registro di sistema, e tramite il programma USBDeview, il codice seriale della periferiche è il nome della chiave, presente sotto VID/PID dentro HKLM/System/CurrentControlSet/Enum/Usb.
Inoltre ho notato, usando Wmi Explorer che la tabella Win32_DiskDrive ha la chiave PNPDeviceID che contiene, almeno per i pennini usb, il seriale all'interno. Ho provato con svariati pennini e la struttura è sempre la stessa, ovvero tra l'ultimo \ e l'ultima & ci sta il seriale del device. Premesso che non vorrei assolutamente usare le WMI o fare un mix, per motivi di performance, eventualmente usando le SetupAPI non c'è possibilità di leggere questo campo? (che non sarebbe altro che il device id restituito dalle periferiche plug&play)?