Em um prompt de comando:
diskpart
list disk
select disk x
list partition
em que x é o número do disco que você deseja selecionar.
Como obter a relação entre (hd0,6)
e D:\
sem adivinhar?
Em um prompt de comando:
diskpart
list disk
select disk x
list partition
em que x é o número do disco que você deseja selecionar.
Você pode obter o número do dispositivo e o número da partição usando 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);
Mas lembre-se de que o volume lógico pode estar em vários discos físicos.
Eu só tive que consertar um boot.ini quando ele não conseguiu inicializar a instalação do WinXP - depois de criar novas partições primárias em sua unidade.
Acontece que o WinXP estava localizado em um volume lógico, e o carregador do NT primeiro atribui um número para partições primárias e depois para volumes lógicos (indiscutivelmente por ordem de setor em ambos os casos), criando novas partições primárias (mesmo no final de o disco) O número de partição do WinXP mudou.
Quanto ao número do disco, eu realmente não sei, mas espero que seja ainda mais obscuro. Eu pareço lembrar que os controladores SATA são numerados antes dos PATAs, eu imagino por ordem de conexão (e status de mestre para unidades PATA), mas não me cite sobre isso.
Tags partitioning hard-drive