чтение и запись на жесткий диск непосредственно в win32api, например, на biosdisk или absread в ms-dos - PullRequest
1 голос
/ 20 декабря 2011

Я играл с дисками 12 бит FAT (FAT12) и 16 бит FAT (FAT16) на языке C (Turbo C), который работает под 16-битной ОС MS-DOS.

Мне удалось напрямую манипулировать секторами.

FAT32 был немного сложным, потому что сектора хранятся как связанный список в отличие от других FAT ниже, чем FAT32.

Я хочу читать записывать жесткие диски, USB-диски напрямую, используя 32-битный язык C (win32 api).

Я видел некоторый код , и он использовал / device / для доступа к диску, где, как и в biosdisk, диски были пронумерованы от 0 и далее, я думаю. я манипулировал как головы, сектора, цилиндры ...

Пожалуйста, посоветуйте, как читать и записывать жесткие диски напрямую по секторам или как читать и записывать жесткие диски на низком уровне.

я должен идти на ассемблере?

EDIT

Один из сценариев, по которым мне нужно напрямую манипулировать жестким диском, заключается в том, что я хочу написать файл, сохраняя собственную FAT, даже скрывая его от FileSystem, но помечая эти сектора как используемые. Так что он просто скрывает файл от других пользователей, операционной системы и даже от меня, за исключением программы, которую я пишу, которая может получить доступ только к этим файлам. это только одна точка, а остальные будут просто играть. :)

1 Ответ

1 голос
/ 20 декабря 2011

Если вы используете WinAPI, то вы открываете устройство с необработанным диском, используя CreateFile () API (см. Раздел Физические диски и тома ), а затем используете ReadFile () и WriteFile ()методы чтения и записи данных.

Обратите внимание, однако, что последние версии Windows (Vista, Windows 7) ограничивают ваш доступ, даже если вы являетесь администратором.Наш продукт RawDisk позволяет обойти эти ограничения.Для RawDisk доступны бесплатные некоммерческие лицензии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...