Как получить соотношение между (hd0,6) и D:\ без догадок?

3 ответа3

1

В командной строке:

diskpart

list disk

select disk x

list partition

где x - номер диска, который вы хотите выбрать.

0

Мне просто пришлось исправить boot.ini, когда он не мог загрузить установку WinXP - после создания новых первичных разделов на его диске.

Оказывается, WinXP был расположен в логическом томе, и загрузчик NT сначала назначает номер первичным разделам, а затем логическим томам (возможно, по порядку секторов в обоих случаях), создавая новые первичные разделы (даже в конце диска). Номер раздела WinXP изменен.

Что касается номера диска, я не знаю, но я ожидаю, что он будет еще более неясным. Кажется, я вспоминаю, что контроллеры SATA нумеруются до PATA, я представляю их по порядку разъемов (и состоянию основного устройства для дисков PATA), но не указывайте меня на этом.

0

Вы можете получить номер устройства и номер раздела, используя IOCTL_STORAGE_GET_DEVICE_NUMBER:

HANDLE h = ::CreateFile(L"\\\\.\\d:", 0, 0, NULL, OPEN_EXISTING, 0, NULL);

STORAGE_DEVICE_NUMBER info = {};
DWORD bytesReturned =  0;

::DeviceIoControl(h, IOCTL_STORAGE_GET_DEVICE_NUMBER, NULL, 0, &info, sizeof(info), &bytesReturned, NULL);

Но учтите, что логический том может находиться на нескольких физических дисках.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .