Эта страница , кажется, содержит некоторую соответствующую информацию по этому вопросу:
Вы можете открыть физический или логический
диск с помощью CreateFile ()
интерфейс прикладного программирования
(API) с указанными именами устройств
что у вас есть соответствующий доступ
права на диск (то есть вы должны
быть администратором). Вы должны использовать
оба CreateFile () FILE_SHARE_READ
и FILE_SHARE_WRITE флаги, чтобы получить
доступ к диску.
Как только логический или физический диск
был открыт, вы можете выполнить
прямой ввод / вывод данных на весь
привод. При выполнении прямого диска
I / O, вы должны искать, читать и писать на
кратные размеры секторов
устройство и на границах секторов. Вызов
DeviceIoControl () используя
IOCTL_DISK_GET_DRIVE_GEOMETRY, чтобы получить
количество байтов на сектор, количество
секторов, секторов на дорожку и т. д.
вперед, чтобы вы могли вычислить
размер буфера, который вам понадобится.
Документация CreateFile также предлагает некоторые подсказки:
Вы можете использовать функцию CreateFile, чтобы открыть физический диск или том,
который возвращает дескриптор устройства хранения с прямым доступом (DASD), который может быть
используется с функцией DeviceIoControl. Это позволяет вам получить доступ к
диск или том напрямую, например такие метаданные диска как раздел
Таблица. Тем не менее, этот тип доступа также предоставляет дисковод или
объем до потенциальной потери данных, потому что неправильная запись на диск
использование этого механизма может сделать его содержимое недоступным для
операционная система. Чтобы обеспечить целостность данных, обязательно станьте
знаком с DeviceIoControl и поведением других API
иначе с дескриптором прямого доступа, в отличие от дескриптора файловой системы.