Comment savoir si 2 partitions sont sur le même disque dur?
5 réponses
michael.delva
Bonjour,
je voudrais savoir quelles fonctions de l'API je dois utiliser pour
d=E9terminer si 2 partitions diff=E9rentes sont sur le m=EAme disque dur
physique...
je voudrais savoir quelles fonctions de l'API je dois utiliser pour déterminer si 2 partitions différentes sont sur le même disque dur physique...
DeviceIoControl()
michael.delva
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les caractéristiques des partitions sur un disque (taille, offset de départ, etc...) mais je n'arrive pas à récupérer le nom des partitions, comme on peut les voir dans le Poste de Travail.
J'ai vu des fonctions qui font cela, comme GetFirstVolume et consorts, mais comment faire intergair tout ce petit monde?
Merci d'avance
Mike
Christian ASTOR wrote:
wrote:
> Bonjour, > > je voudrais savoir quelles fonctions de l'API je dois utiliser pour > déterminer si 2 partitions différentes sont sur le même disque dur > physique...
DeviceIoControl()
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les
signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les
noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les
caractéristiques des partitions sur un disque (taille, offset de
départ, etc...) mais je n'arrive pas à récupérer le nom des
partitions, comme on peut les voir dans le Poste de Travail.
J'ai vu des fonctions qui font cela, comme GetFirstVolume et consorts,
mais comment faire intergair tout ce petit monde?
Merci d'avance
Mike
Christian ASTOR wrote:
michael.delva@gmail.com wrote:
> Bonjour,
>
> je voudrais savoir quelles fonctions de l'API je dois utiliser pour
> déterminer si 2 partitions différentes sont sur le même disque dur
> physique...
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les caractéristiques des partitions sur un disque (taille, offset de départ, etc...) mais je n'arrive pas à récupérer le nom des partitions, comme on peut les voir dans le Poste de Travail.
J'ai vu des fonctions qui font cela, comme GetFirstVolume et consorts, mais comment faire intergair tout ce petit monde?
Merci d'avance
Mike
Christian ASTOR wrote:
wrote:
> Bonjour, > > je voudrais savoir quelles fonctions de l'API je dois utiliser pour > déterminer si 2 partitions différentes sont sur le même disque dur > physique...
DeviceIoControl()
Christian ASTOR
wrote:
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les caractéristiques des partitions sur un disque (taille, offset de départ, etc...) mais je n'arrive pas à récupérer le nom des partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les labels, les mêmes que ceux donnés par P. Magic ou renvoyés par GetVolumeInformation()
michael.delva@gmail.com wrote:
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les
signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les
noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les
caractéristiques des partitions sur un disque (taille, offset de
départ, etc...) mais je n'arrive pas à récupérer le nom des
partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les
labels, les mêmes que ceux donnés par P. Magic ou renvoyés par
GetVolumeInformation()
Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
Je récupère le disque de chacune des partitions et je regarde si les signatures des disques sont les même.
Mais ce que je n'arrive pas à faire maintenant, c'est récupérer les noms des partitions pour un disque donné.
En utilisant DeviceIOControl, je peux avoir toutes les caractéristiques des partitions sur un disque (taille, offset de départ, etc...) mais je n'arrive pas à récupérer le nom des partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les labels, les mêmes que ceux donnés par P. Magic ou renvoyés par GetVolumeInformation()
michael.delva
Ca je sais oui.
Mais partant d'une lettre de partition, je peux avoir les infos sur le disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque, avoir le nom des partitions installées dessus?
Il faut que je récupère les tailles des partitions et que je compare avec ce que me donne GetVolumeInformation pour trouver la bonne?
Christian ASTOR wrote:
wrote:
> Effectivement j'ai trouvé ce qu'il me fallait dans la msdn. > > Je récupère le disque de chacune des partitions et je regarde si les > signatures des disques sont les même. > > Mais ce que je n'arrive pas à faire maintenant, c'est récupérer l es > noms des partitions pour un disque donné. > > En utilisant DeviceIOControl, je peux avoir toutes les > caractéristiques des partitions sur un disque (taille, offset de > départ, etc...) mais je n'arrive pas à récupérer le nom des > partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les labels, les mêmes que ceux donnés par P. Magic ou renvoyés par GetVolumeInformation()
Ca je sais oui.
Mais partant d'une lettre de partition, je peux avoir les infos sur le
disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque,
avoir le nom des partitions installées dessus?
Il faut que je récupère les tailles des partitions et que je compare
avec ce que me donne GetVolumeInformation pour trouver la bonne?
Christian ASTOR wrote:
michael.delva@gmail.com wrote:
> Effectivement j'ai trouvé ce qu'il me fallait dans la msdn.
>
> Je récupère le disque de chacune des partitions et je regarde si les
> signatures des disques sont les même.
>
> Mais ce que je n'arrive pas à faire maintenant, c'est récupérer l es
> noms des partitions pour un disque donné.
>
> En utilisant DeviceIOControl, je peux avoir toutes les
> caractéristiques des partitions sur un disque (taille, offset de
> départ, etc...) mais je n'arrive pas à récupérer le nom des
> partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les
labels, les mêmes que ceux donnés par P. Magic ou renvoyés par
GetVolumeInformation()
Mais partant d'une lettre de partition, je peux avoir les infos sur le disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque, avoir le nom des partitions installées dessus?
Il faut que je récupère les tailles des partitions et que je compare avec ce que me donne GetVolumeInformation pour trouver la bonne?
Christian ASTOR wrote:
wrote:
> Effectivement j'ai trouvé ce qu'il me fallait dans la msdn. > > Je récupère le disque de chacune des partitions et je regarde si les > signatures des disques sont les même. > > Mais ce que je n'arrive pas à faire maintenant, c'est récupérer l es > noms des partitions pour un disque donné. > > En utilisant DeviceIOControl, je peux avoir toutes les > caractéristiques des partitions sur un disque (taille, offset de > départ, etc...) mais je n'arrive pas à récupérer le nom des > partitions, comme on peut les voir dans le Poste de Travail.
Les noms qui sont affichés dans le poste de travail sont juste les labels, les mêmes que ceux donnés par P. Magic ou renvoyés par GetVolumeInformation()
Christian ASTOR
wrote:
Ca je sais oui.
Mais partant d'une lettre de partition, je peux avoir les infos sur le disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque, avoir le nom des partitions installées dessus?
Par ex, en énumérant les volumes (FindFirstVolume(), ...) + IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS pour choisir le disque + GetVolumePathNamesForVolumeName()-GetVolumeInformation() pour la lettre et libellé.
michael.delva@gmail.com wrote:
Ca je sais oui.
Mais partant d'une lettre de partition, je peux avoir les infos sur le
disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque,
avoir le nom des partitions installées dessus?
Par ex, en énumérant les volumes (FindFirstVolume(), ...) +
IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS pour choisir le disque
+ GetVolumePathNamesForVolumeName()-GetVolumeInformation() pour la
lettre et libellé.
Mais partant d'une lettre de partition, je peux avoir les infos sur le disque sur lequel se trouve cette partition.
Comment je peux avoir l'inverse,à savoir une fois que j'ai le disque, avoir le nom des partitions installées dessus?
Par ex, en énumérant les volumes (FindFirstVolume(), ...) + IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS pour choisir le disque + GetVolumePathNamesForVolumeName()-GetVolumeInformation() pour la lettre et libellé.