A
Andersen1313
Стоит задача написать программу извлекающую секторы диска, информацию о FAT и саму FAT.
Создаю одну тему под таким обширным названием, чтобы писать все вопросы какие возникнут.
И так первая же проблема:
Как бы не писал в функции CreateFile первый параметр: "\\\\.\\PhysicalDrive1", "\\\\.\\C:", hFile выдает INVALID_HANDLE_VALUE. Подставлял разные буквы цифры, даже так писал "\\\\.\\PhysicalDriveC:".
Где я ошибся?!
P.S. Попутный вопрос нашел описание для этой функции в статье для Delphi и там было написано:
Создаю одну тему под таким обширным названием, чтобы писать все вопросы какие возникнут.
И так первая же проблема:
Как бы не писал в функции CreateFile первый параметр: "\\\\.\\PhysicalDrive1", "\\\\.\\C:", hFile выдает INVALID_HANDLE_VALUE. Подставлял разные буквы цифры, даже так писал "\\\\.\\PhysicalDriveC:".
Где я ошибся?!
C++:
HANDLE hFile=CreateFile("\\\\.\\PhysicalDrive1",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hFile==INVALID_HANDLE_VALUE)
ShowMessage("Error");
P.S. Попутный вопрос нашел описание для этой функции в статье для Delphi и там было написано:
Не значит ли это, что сколько я не бейся на Windows 7 я не получу нужного результата? (вышеприведенный код придется запускать на XP, так что исправления нужны под XP, программу так же проверял на XP там такая же ошибка)Проще всего это делать в Windows 2000/XP (с правами администратора, конечно). Работа с жестким диском в этих операционных системах производится путем открытия диска как файла с помощью функции CreateFile и указания диска или раздела по схеме Device Namespace (открывается физический диск - '\.PHYSICALDRIVE<n>'), полученный хэндл в дальнейшем используется для работы с диском с помощью функций ReadFile, WriteFile и DeviceIoControl.