我一直在玩C盘语言(Turbo C)的12位FAT(FAT12)和16位FAT(FAT16)磁盘驱动器,它运行在16位操作系统MS-DOS下。
我能够直接操纵行业。
FAT32有点复杂,因为扇区像链接列表一样存储,而不像其他FAT低于FAT32。
我想直接使用32位C语言(win32 api)读取硬盘,USB磁盘。
我看到some code并且正在使用/ device /访问磁盘,就像在biosdisk中一样,磁盘从0开始编号,我认为。我正在操纵像头,扇区,圆柱......
请建议如何逐个扇区地直接读取硬盘或如何读取低级别的写入硬盘。
我必须使用汇编语言吗?
修改
为什么我需要直接操作硬盘的一种情况是我想写一个文件来维护我自己的FAT,甚至将它从FileSystem中隐藏但是将这些扇区标记为已使用。所以它只是隐藏了其他用户,操作系统甚至是我的文件,除了我写的只能访问这些文件的程序。这只是一点而其他人只是在玩耍。 :)
答案 0 :(得分:1)
如果您使用WinAPI,则使用CreateFile()API打开原始磁盘设备(请参阅 Physical Disks and Volumes 部分),然后使用ReadFile()和WriteFile()方法读写数据。
但请注意,即使您是管理员,最新版本的Windows(Vista,Windows 7)也会限制您的访问权限。我们的RawDisk产品可以让您绕过这些限制。 RawDisk提供免费的非商业许可证。