2012-02-15 1 views

Répondre

5

La classe WMIWin32_DiskPartition est ce dont j'ai besoin. Maintenant, pour savoir comment utiliser WMI pour obtenir cette information à partir d'une lettre de lecteur.

Win32_LogicalDisk est également utile, MSDN Example et this stackoverflow answer.

Mise à jour: Hmm, cela ne fonctionne pas! Pas dans le Windows Installer de toute façon (WMI is missing from Windows PE !!) donc j'utilise l'autre réponse QueryDosDevice (par exemple \\.\PhysicalDisk1\Partition0) et le piratage ensemble. Cela suce Microsoft, accepte un sacré chemin dans votre installateur.


Réponse:IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS travaux pour obtenir le Disk ID. Et DeviceIoControl IOCTL_DISK_GET_PARTITION_INFO_EX (merci TLama) me obtient le Partition ID.

2

Avez-vous essayé d'appeler simplement QueryDosDevice?

+0

Cela ne semble pas me donner le numéro d'identification du disque ni l'identifiant de la partition. Je travaille avec le programme qui installe Windows lui-même. L'installation veut un ID de disque et un ID de partition. Pas de cartographie virtuelle. – unixman83

+1

@ unixman83: Donc le "chemin cible" retourné n'est pas quelque chose comme '" \\. \ PhysicalDisk1 \ Partition0 "'? –

+0

Hmm, les docs ont dit différemment: '\ Device \ HarddiskVolume1'. Je n'ai pas essayé. Je suppose que cela fonctionnerait. Je vais devoir l'essayer demain. – unixman83

Questions connexes