我想知道如何硬盘访问的作品。 例如,我如何查看/修改行业? 即时消息定位Windows,如果有帮助。 谢谢
这个页面似乎有关于这个问题的一些相关信息:
您可以使用具有这些设备名称的CreateFile()应用程序编程接口(API)打开物理驱动器或逻辑驱动器,前提是您对驱动器具有相应的访问权限(即您必须是管理员)。 您必须同时使用CreateFile()FILE_SHARE_READ和FILE_SHARE_WRITE标志才能访问驱动器。
一旦逻辑或物理驱动器打开,您就可以对整个驱动器上的数据执行直接I / O。 执行直接磁盘I / O时,您必须以设备的扇区大小和扇区边界的多个扇区进行查找,读取和写入操作。 使用IOCTL_DISK_GET_DRIVE_GEOMETRY调用DeviceIoControl()来获取每个扇区的字节数,扇区数,每个磁道的扇区等等,这样就可以计算出你需要的缓冲区的大小。
CreateFile的文档也提供了一些线索:
您可以使用CreateFile函数来打开物理磁盘驱动器或卷,它将返回可以与DeviceIoControl函数一起使用的直接访问存储设备(DASD)句柄。 这使您可以直接访问磁盘或卷,例如分区表等磁盘元数据。 但是,此类访问还会将磁盘驱动器或卷暴露给潜在的数据丢失,因为使用此机制对磁盘进行不正确的写入操作可能会使操作系统无法访问其内容。 为确保数据的完整性,请务必熟悉DeviceIoControl以及其他API与直接访问句柄而不是文件系统句柄的行为方式。
您可以使用win32的CreateFile()函数打开逻辑卷(例如c:驱动器)或物理驱动器。 通过返回的句柄,您可以根据需要读取和写入扇区。 MSDN的这个页面应该让你开始: CreateFile Function
我对所造成的损害不承担任何责任:-)
STXXL可能是你感兴趣的: http ://stxxl.sourceforge.net/