Подскажите пожалуйста, как правильно использовать данное сочетание мой код (ниже) не работает. Возвращаемое значение DeviceIOControl -ноль.
Если поставить доступ GENERIC — то возвращает не ноль, однако в структуре PARTITION_INFO ppi какая-то ерунда.
Вообще пишу программу, создающую образы разделов(курсовая такая). Если подскажете что-нибудь — буду благодарен.
hDevice = CreateFile(szPartName,
0, // GENERIC_WRITE | GENERIC_READ
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
bPResult = DeviceIoControl(hDevice,
IOCTL_DISK_GET_PARTITION_INFO,
NULL, 0,
&ppi,
sizeof(ppi),
&junk,
(LPOVERLAPPED) NULL);
CloseHandle(hDevice);
Здравствуйте, Bah, Вы писали:
Bah>Подскажите пожалуйста, как правильно использовать данное сочетание мой код (ниже) не работает. Возвращаемое значение DeviceIOControl -ноль.
это значит что ошибка посему можно даже не смотреть в структуру
Вы уверены что у Вас hDevice валидный перед вызовом DIOC?
в описании CreateFile написаны условия для открытия volume handles — права админа, OPEN_EXISTING и FILE_SHARE_WRITE флаги
из Вашего сообщения не ясно есть ли у Вас права админа и не ясно какой именно девайс Вы открываете: \\.\PHYSICALDRIVE0 или \\.\C:?
короче, посмотрите пример
Platform SDK: Device I/O
Calling DeviceIoControl
... << RSDN@Home 1.1.3 beta 1 >>