我正在使用BackupRead和BackupWrite在两个文件夹之间实现文件同步。
我可以在文件和文件夹上使用它们而不会出现任何问题。但是当我想在重新分析点上使用它们时,BackupWrite因访问被拒绝错误而失败。
使用BackupRead可以无错误地检索原始重新分析点。缓冲区有2个流:一个用于安全数据,另一个用于重新分析数据。我可以在后者中看到重新分析点的目标。 我尝试创建的文件不存在,并且FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT传递给CreateFile。
所以,我的问题是:打开文件的方式是什么,以便BackupWrite成功恢复重新分析点?
答案 0 :(得分:3)
我终于找到了2个问题:
如果重新分析点是针对目录的,则必须首先将新的重新分析点创建为目录。
我们需要启用" SeRestorePrivilege"或者" SeCreateSymbolicLinkPrivilege"对于当前进程(通过OpenProcessToken,LookupPrivilegeValue和AdjustTokenPrivileges),即使已授予管理权限。