以编程方式在Windows c ++上移动分区

时间:2013-10-01 09:20:51

标签: c++ windows winapi windows-xp

我正在尝试创建一个应用程序,它将以编程方式移动硬盘驱动器上的Windows分区,从扇区X到扇区Y.

到目前为止我尝试了什么:

  • 将有效数据从起始扇区X复制到扇区Y(读/写)
  • 更新MBR上的分区表,使特定分区处于偏移量Y
    第二步我正在使用DeviceIoControl函数的IOCTL_DISK_SET_DRIVE_LAYOUT控制代码,但我总是在 蓝屏 (* kernel_stack_inpage_error *)

我还缺少什么?

我的解决方案是使用c ++ / winapi,我只在Windows XP上尝试过。

1 个答案:

答案 0 :(得分:0)

您是否正在尝试移动Windows当前正在访问的分区(甚至是当前安装Windows的分区)?

这是一个非常糟糕的主意,因为在这种情况下缓存算法将无法正常工作,因此蓝屏并不是很令人惊讶。