Mapping entre les lecteurs logiques et les device physique usb
6 réponses
bertrand doradoux
Salut .
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere
tous les devices de stockages de masse USB en passant par des fonctions
telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a
savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique
associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un
debut de réponse cela me rendrait un grand service.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere
tous les devices de stockages de masse USB en passant par des fonctions
telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a
savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique
associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un
debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName()
Par ex, sur mon poste,
"\\?\Volume{c3438222-a8ed-11d9-93b6-806d6172696f}\"
me donne "G:"
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
azertyuiop
Christian ASTOR a écrit :
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
Dans quelle librairie de programmation?
Christian ASTOR a écrit :
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a
enumere tous les devices de stockages de masse USB en passant par des
fonctions telles que CreateFile et DeviceIocontrol. En revanche je
n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre
de lecteur logique associé a device physique. si quelqu'un pouvait me
donner ne serait ce qu'un debut de réponse cela me rendrait un grand
service.
Il y a entre autres GetVolumePathNamesForVolumeName()
Par ex, sur mon poste,
"\\?\Volume{c3438222-a8ed-11d9-93b6-806d6172696f}\"
me donne "G:"
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
Dans quelle librairie de programmation?
bertrand doradoux
Je viens d'essayer ta solution mais en fait je me heurte maintenant a un autre probleme car maintenant la fonction GetVolumePathNamesForVolumeName me renvoi zero en me disant que le chemin spécifié n'existe pas. Le probleme c'est que je ne sais pas si je passe la bonne valeur, voici en fait ce que je fais
DeviceIoControl(HubHandle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION, &ConnectionInformation, .... // La recupere bien les infos concernant ma clef
Ensuite j'appel
DeviceIoControl(hwnd, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, &keyname,sizeof(keyname), &..... // et la je recupere une clef qui est "{36FC9E60-C465-11CF-8056-444553540000} 029"
je la transforme en "?Volume{36FC9E60-C465-11CF-8056-444553540000} 029
et ensuite je passe cette valeur a la fonction
GetVolumePathNamesForVolumeName (...
Mais a ce moment la j'ai un code retour False
En fait je me demande j'ai un doute concernant le 2eme parametre( IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME) passe a la fonction DeviceIoControl, qui en fait ne me renvoi peut etre bien pas le nom de la clef ?
Peut etre avez vous une idée pour mon probleme?
"Christian ASTOR" a écrit dans le message de news: 43cd70c8$0$26400$
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
Je viens d'essayer ta solution mais en fait je me heurte maintenant a un
autre probleme car maintenant la fonction GetVolumePathNamesForVolumeName
me renvoi zero en me disant que le chemin spécifié n'existe pas.
Le probleme c'est que je ne sais pas si je passe la bonne valeur, voici en
fait ce que je fais
DeviceIoControl(HubHandle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION,
&ConnectionInformation, .... // La recupere bien les infos concernant ma
clef
Ensuite j'appel
DeviceIoControl(hwnd, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME,
&keyname,sizeof(keyname), &..... // et la je recupere une clef qui est
"{36FC9E60-C465-11CF-8056-444553540000} 029"
je la transforme en "\?Volume{36FC9E60-C465-11CF-8056-444553540000} 029
et ensuite je passe cette valeur a la fonction
GetVolumePathNamesForVolumeName (...
Mais a ce moment la j'ai un code retour False
En fait je me demande j'ai un doute concernant le 2eme parametre(
IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME) passe a la fonction
DeviceIoControl, qui en fait ne me renvoi peut etre bien pas le nom de la
clef ?
Peut etre avez vous une idée pour mon probleme?
"Christian ASTOR" <castorix@club-internet.fr> a écrit dans le message de
news: 43cd70c8$0$26400$7a628cd7@news.club-internet.fr...
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere
tous les devices de stockages de masse USB en passant par des fonctions
telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a
savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique
associé a device physique. si quelqu'un pouvait me donner ne serait ce
qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName()
Par ex, sur mon poste,
"\\?\Volume{c3438222-a8ed-11d9-93b6-806d6172696f}\"
me donne "G:"
Je viens d'essayer ta solution mais en fait je me heurte maintenant a un autre probleme car maintenant la fonction GetVolumePathNamesForVolumeName me renvoi zero en me disant que le chemin spécifié n'existe pas. Le probleme c'est que je ne sais pas si je passe la bonne valeur, voici en fait ce que je fais
DeviceIoControl(HubHandle, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION, &ConnectionInformation, .... // La recupere bien les infos concernant ma clef
Ensuite j'appel
DeviceIoControl(hwnd, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, &keyname,sizeof(keyname), &..... // et la je recupere une clef qui est "{36FC9E60-C465-11CF-8056-444553540000} 029"
je la transforme en "?Volume{36FC9E60-C465-11CF-8056-444553540000} 029
et ensuite je passe cette valeur a la fonction
GetVolumePathNamesForVolumeName (...
Mais a ce moment la j'ai un code retour False
En fait je me demande j'ai un doute concernant le 2eme parametre( IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME) passe a la fonction DeviceIoControl, qui en fait ne me renvoi peut etre bien pas le nom de la clef ?
Peut etre avez vous une idée pour mon probleme?
"Christian ASTOR" a écrit dans le message de news: 43cd70c8$0$26400$
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
bertrand doradoux
En fait cette fonction se trouve dans les api standards, il faut cependant definir la constante :#define _WIN32_WINNT 0x0500
"azertyuiop" a écrit dans le message de news:
Christian ASTOR a écrit :
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
Dans quelle librairie de programmation?
En fait cette fonction se trouve dans les api standards, il faut cependant
definir la constante :#define _WIN32_WINNT 0x0500
"azertyuiop" <lucetra@wanadoo.fr> a écrit dans le message de news:
43CE133C.3040602@wanadoo.fr...
Christian ASTOR a écrit :
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere
tous les devices de stockages de masse USB en passant par des fonctions
telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a
savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique
associé a device physique. si quelqu'un pouvait me donner ne serait ce
qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName()
Par ex, sur mon poste,
"\\?\Volume{c3438222-a8ed-11d9-93b6-806d6172696f}\"
me donne "G:"
En fait cette fonction se trouve dans les api standards, il faut cependant definir la constante :#define _WIN32_WINNT 0x0500
"azertyuiop" a écrit dans le message de news:
Christian ASTOR a écrit :
bertrand doradoux wrote:
Je vous explique mon probleme , voila j'arrive a leur actuelle a enumere tous les devices de stockages de masse USB en passant par des fonctions telles que CreateFile et DeviceIocontrol. En revanche je n'arrive pas a savoir de qu'elle maniere je peux retrouver la lettre de lecteur logique associé a device physique. si quelqu'un pouvait me donner ne serait ce qu'un debut de réponse cela me rendrait un grand service.
Il y a entre autres GetVolumePathNamesForVolumeName() Par ex, sur mon poste, "\?Volume{c3438222-a8ed-11d9-93b6-806d6172696f}" me donne "G:"
Dans quelle librairie de programmation?
Christian ASTOR
bertrand doradoux a écrit :
je la transforme en "?Volume{36FC9E60-C465-11CF-8056-444553540000} 029
et ensuite je passe cette valeur a la fonction
GetVolumePathNamesForVolumeName (... Mais a ce moment la j'ai un code retour False
Je ne peux pas tester, mais si tu énumères les volumes, est-ce que tu les retrouves ? (BTW, un nom de volume doit normalement se terminer par "")