Чтобы быть тупым, лучший способ надежно получить все смонтированные / размонтированные разделы диска - это самостоятельно проанализировать mbr / gpt.
Сначала проясним некоторые вещи: диски содержат разделы, а разделы объединяются для создания томов.Поэтому у вас может быть один том, состоящий из двух разделов на двух разных дисках.
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
- самое близкое решение, которое вы получите, не делая его вручную.Проблема в том, что он использует окна, которые могут неправильно анализировать MBR, потому что бог знает, по какой причине.Моя текущая рабочая теория заключается в том, что если Windows была установлена через EFI, но загружается через MBR, вы увидите проблему такого рода.Windows удается сойти с рук, потому что большинство менеджеров разделов копируют важную информацию о разделах в MBR вместе с GPT.Но это означает, что вы не получите важную информацию, такую как UUID раздела (который хранится только в GPT).
Все остальные решения включают получение информации о томе, которая полностью отличается от информации о разделе.
Примечание: идентификатор тома будет обычно иметь форму \\.\Volume{PARTITION_UUID}
.Случаи, когда это не будет выполнено: если диск разделен с MBR, а не GPT (MBR не имеет UUID раздела, поэтому Windows создает его), если у вас есть рейд-диск, или если у вас есть том, состоящий изнесколько дисков (вроде как рейд).Это как раз те случаи, которые приходят мне в голову, не приставайте ко мне.