Bonsoir,
Ca fait 2 jours que je galère sur une connerie et je commence à avoir des envie de meurtre, donc j'ai préféré venir en parler ici.
J'ai grace à Qt et RegisterDeviceNotificationA, pu récuperer les events windows de branchement/débranchement de disques durs.
Je recupère une structure MSG.
Avec je fais ceci:
J'obtient un device path dans ma variable dest de ce style:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 { DEV_BROADCAST_HDR *MsgHdr; DEV_BROADCAST_DEVICEINTERFACE_A *Volume; MsgHdr = (DEV_BROADCAST_HDR*) msg->lParam; Volume = (DEV_BROADCAST_DEVICEINTERFACE_A*)MsgHdr; nbCaracters = Volume->dbcc_size - (sizeof(DWORD) * 3 + sizeof(GUID)); memcpy(dest, Volume->dbcc_name, nbCaracters); }
"\\?\USB#Vid_059f&Pid_0c41#152D203380B6#{a5dcbf10-6530-11d2-901f-00c04fb951ed}"
Mais moi, ce qui m'intéresse, c'est d'obtenir le numéro du disque dur.
Si je fais un createFile sur ce devicePath, c'est un handle sur le bridge.
J'ai déjà tenté de faire un IOCTL_STORAGE_GET_DEVICE_NUMBER mais ça ne fonctionne pas (normal, si c'est fait sur le bridge et non le disque).
Est-ce que quelqu'un pourrait me sortir de cette merde ?!
Merci d'avance.
Partager