2

我正在使用 BackupRead 和 BackupWrite 来实现 2 个文件夹之间的文件同步。

我可以毫无问题地在文件和文件夹上使用它们。但是当我想在重新分析点上使用它们时,BackupWrite 会失败并出现拒绝访问错误。

使用 BackupRead 检索原始重分析点时不会出错。缓冲区有 2 个流:一个用于安全数据,一个用于重新解析数据。我可以在后者中看到重解析点的目标。我尝试创建的文件不存在并且 FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT 被传递给 CreateFile。

所以,我的问题是:打开文件以使 BackupWrite 成功恢复重解析点的方法是什么?

4

1 回答 1

3

我终于发现了2个问题:

  • 如果重解析点用于目录,则必须首先将新重解析点创建为目录。

  • 即使已授予管理权限,我们也需要为当前进程启用“SeRestorePrivilege”或“SeCreateSymbolicLinkPrivilege”(通过 OpenProcessToken、LookupPrivilegeValue 和 AdjustTokenPrivileges)。

于 2015-05-23T17:04:42.860 回答