IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Recuperer un numero de disque depuis un device path


Sujet :

Windows

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Recuperer un numero de disque depuis un device path
    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:

    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);
    }
    J'obtient un device path dans ma variable dest de ce style:

    "\\?\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.

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    GUID_DEVINTERFACE_DISK au lieu de GUID_DEVINTERFACE_USB_DEVICE
    dans RegisterDeviceNotification et c'est fixed.

Discussions similaires

  1. Recuperation du numero de la ligne du select
    Par P'tit Jean dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 15/10/2007, 17h31
  2. Réponses: 10
    Dernier message: 26/07/2005, 14h38
  3. Recuperer le numero de ligne d'une exception Python
    Par chrdou dans le forum Général Python
    Réponses: 4
    Dernier message: 28/02/2005, 16h58
  4. Réponses: 2
    Dernier message: 19/05/2004, 10h13
  5. Récuperer le numero XY d'un groupe AB
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/05/2004, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo