Сопоставить DiskIndex с меткой тома

В настоящее время я могу получить все диски и их метки в C # с помощьюDriveInfo.GetDrives (), Затем я могу получить индекс диска / индекс раздела с помощью этой методологии.

var searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskPartition");

foreach (var queryObj in searcher.Get())
{
    Console.WriteLine("-----------------------------------");
    Console.WriteLine("Win32_DiskPartition instance");
    Console.WriteLine("Name:{0}", (string)queryObj["Name"]);
    Console.WriteLine("Index:{0}", (uint)queryObj["Index"]);
    Console.WriteLine("DiskIndex:{0}", (uint)queryObj["DiskIndex"]);
    Console.WriteLine("BootPartition:{0}", (bool)queryObj["BootPartition"]);
}

Проблема в том, что DiskIndex, Name и Index в основном просто числа, а не метка тома, то есть C: \, D: \ и т. Д.

Итак, суть в том, как я могу сделать метку тома, которая являетсяИмя Proprty на DriveInfo к DiskIndex? Либо использовать эту методологию, либо лучше.

(Это следующее:Скажите, является ли диск разделом или отдельным жестким диском)

РЕДАКТИРОВАТЬ: Я нашел для запроса управленияWin32_LogicalDisk а затемWin32_LogicalDiskToPartition, LogicalDisk имеет объем, а LogicalDisktoParition обеспечивает сопоставление. Тем не менее, я не могу понять, как получить карту. Я попытался найти JOIN и выбрать значения, но не смог найти ничего о том, как это объединить без обширного цикла в коде c #.

Ответы на вопрос(2)

Ваш ответ на вопрос