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


0

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


Программный? На каком языке?
Jeffamaphone

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

Ответы:


1

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

diskpart

list disk

select disk x

list partition

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


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), но не цитируйте меня по этому поводу.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.