La documentation sur IOCTL_MOUNTDEV_QUERY_UNIQUE_ID
est un peu déroutant ... exactement ce que type d'identité doit être retourné dans la structure MOUNTDEV_UNIQUE_ID
?L'Unicité de IOCTL_MOUNTDEV_QUERY_UNIQUE_ID
La documentation
typedef struct _MOUNTDEV_UNIQUE_ID {
USHORT UniqueIdLength;
UCHAR UniqueId[1];
} MOUNTDEV_UNIQUE_ID, *PMOUNTDEV_UNIQUE_ID;
dit:
UniqueIdLength
- Contient la longueur d'ID de volume unique.
UniqueId
- Contient l'ID de volume unique. Le format des noms de volumes uniques est
"\??\Volume{GUID}\"
, où GUID est un identificateur global unique qui identifie le volume.
Cependant, il y a quelque chose de bizarre ici: Quel devrait être le format exact de UniqueId
? Si le format est \??\Volume{GUID}\
, alors quel est le point du champ UniqueIdLength
- ne sont-ils pas tous de la même taille? Sinon, dans quel format l'identifiant de l'appareil doit-il être?
En outre, est-ce un ID ou un volume ID? En d'autres termes, est-ce supposé être unique par moyen (par exemple CD) ou par dispositif (lecteur de CD)?
@Eric: Désolé, je pense que ma question était trompeuse. Par * fixed-size * je ne parlais pas du '[1]' (je sais comment C fonctionne!), Mais du fait que la chaîne \ ?? \ Volume {GUID} \ aurait toujours la même longueur (environ 35 caractères je pense?) ... alors pourquoi avez-vous besoin d'un autre champ de longueur? Aussi, à propos de l'unicité: Pour un programme comme ImDisk, serait-ce par disque virtuel? – Mehrdad
@Mehrdad: Actuellement, les 35 caractères du nom, ou presque, ne sont pas corrigés, mais il serait parfaitement logique d'utiliser une chaîne comptée.Autant que je sache, l'ID est persistant et unique pour tout ce qui peut être monté en tant que lettre de lecteur - qu'il s'agisse d'une partition sur un disque fixe, un lecteur de CD-ROM ou une clé USB non partitionnée mais formatée. Je ne sais pas ImDisk - mais la même règle devrait tenir, l'identifiant unique identifie ce qui peut être monté comme un lecteur. – Erik
Ah d'accord, merci pour l'info. :) (Btw, juste remarqué que j'ai mal orthographié votre nom la dernière fois ..: [) – Mehrdad