在 Windows 上以编程方式对文件进行碎片整理

问题描述

我正在尝试学习本教程:Defragmenting Files

我在 DeviceIoControl() 卷的句柄上使用 FSCTL_GET_VOLUME_BITMAP 调用 C:,我得到了正确的响应。

然后我成功打开另一个文件的句柄(我尝试了从 10KB 到几 MB 的文件),然后我用 DeviceIoControl() 调用 FSCTL_GET_RETRIEVAL_POINTERS,它成功了,没有最后的错误或失败的结果,但 RETRIEVAL_POINTERS_BUFFER 未填充。

我还尝试在 C: 卷句柄上调用它,但即使在尝试将 ERROR_HANDLE_EOF 偏移量设置为 0 并将文件指针设置为 {{ 1}} 到 0 相对于文件的开头。

OVERLAPPED

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)