这个页面似乎有一些关于这个主题的相关信息:
您可以使用具有这些设备名称的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如何使用直接访问句柄而不是文件系统句柄.
| 归档时间: |
|
| 查看次数: |
7399 次 |
| 最近记录: |