Как определить диск и номер раздела D: \ в Windows XP?

0

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

Hello71
источник
Программный? На каком языке?
Jeffamaphone
Никаких требований для этого, мне просто нужно найти способ узнать цифры ...

Ответы:

1

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

diskpart

list disk

select disk x

list partition

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

MDMarra
источник
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);

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

Сергий
источник
Я думаю, это C, как скомпилировать и запустить его?
Да, это C. Но вы можете использовать любой язык, который может вызывать Win32API. Главное - это IOCTL_STORAGE_GET_DEVICE_NUMBER.
@ Sergius, можете ли вы немного рассказать о заголовочных файлах и библиотеках, которые нужно включить для успешной сборки?
#include <windows.h>
0

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

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

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

Чема
источник