2

BackupRead と BackupWrite を使用して、2 つのフォルダー間のファイル同期を実装しています。

ファイルやフォルダで問題なく使用できます。しかし、再解析ポイントでそれらを使用したい場合、BackupWrite はアクセス拒否エラーで失敗します。

元の再解析ポイントは、BackupRead でエラーなしで取得されます。バッファには 2 つのストリームがあります。1 つはセキュリティ データ用、もう 1 つは再解析データ用です。後者には、再解析ポイントのターゲットが表示されます。作成しようとしているファイルが存在せず、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 に答える