問題タブ [reparsepoint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C/C++、NTFS。複数の再解析ポイント
MSDN は、「特定のパスには 31 個の再解析ポイントの制限があります」と述べています。( http://msdn.microsoft.com/en-us/library/windows/desktop/aa365503%28v=vs.85%29.aspx ) したがって、1 つのファイルに最大 . 31 リパースポイント (?)
ファイルに「a」再解析ポイントがあるかどうかを確認するには、GetFileAttributes を使用できます (ここで言及: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365507%28v=vs.85%29. aspx ) および "the" リパース ポイントのコンテンツを取得するには、FSCTL_GET_REPARSE_POINT を使用した DeviceIoControl が必要です (評判が低いため、3 つ目のリンクを投稿できません)。
しかし、複数ある場合に必要な再解析データを指定する可能性はありませんか? GetFileAttributes はカウントなどの代わりに Yes/No のみを言い、DeviceIoControl は 1 つの REPARSE_GUID_DATA_BUFFER 構造 (MSDN による) を埋め、GUID やインデックスなどを与える可能性はありません。
編集:31個の再解析ポイントを正しく理解し、それらにアクセスする方法を理解しているかどうかの私の質問。
windows - 管理者権限を必要としない FindFirstVolumeMountPoint の代替ですか?
FindFirstVolumeMountPoint
コードを実行しているユーザーが管理者でない場合に失敗しない (および友人)の代替手段はありますか?
一つ考えてHKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
いたのですが、調べてみると何の情報もありません。
backup - BackupWrite: 再解析ポイントでアクセスが拒否されました
BackupRead と BackupWrite を使用して、2 つのフォルダー間のファイル同期を実装しています。
ファイルやフォルダで問題なく使用できます。しかし、再解析ポイントでそれらを使用したい場合、BackupWrite はアクセス拒否エラーで失敗します。
元の再解析ポイントは、BackupRead でエラーなしで取得されます。バッファには 2 つのストリームがあります。1 つはセキュリティ データ用、もう 1 つは再解析データ用です。後者には、再解析ポイントのターゲットが表示されます。作成しようとしているファイルが存在せず、FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OPEN_REPARSE_POINT が CreateFile に渡されます。
だから、私の質問は: BackupWrite が再解析ポイントを正常に復元できるようにファイルを開く方法は何ですか?
c++ - DeviceIoControl メモリ位置への無効なアクセス
次のコードを実行すると、メモリ位置への無効なアクセスが発生します
しかし、次のコードは正常に動作します。
特定のフォルダー内のファイルの再解析データを取得しようとしています。これは私のREPARSE_DATA_BUFFER
どこで間違ったのかわかりません。私の最初のコードを修正するのを手伝ってください。
c++ - 再解析ポイントとしての 1 つのドライブ
Win 10 Fall Creators Update Version 10.0.16299 Build 16299 で実験している次のスタンドアロン ソース コードを検討してください。
これは、関数として扱われる 1 つのドライブのターゲットを解決するために使用するコードIO_REPARSE_TAG_CLOUD_7
ですGetFileAttributesExW
。
_REPARSE_DATA_STRUCTURE
とのみの情報がSymbolicLinkReparseBuffer
ありMountPointReparseBuffer
、One Drive などの再解析ポイントに関連するフィールドがないことはわかっています。
One Drive をサポートするように構造が更新されているかどうかを確認するために、windows ドライバー キットの (秋のクリエーターの更新用)ntifs.h
ファイルを確認しました。しかし、そうではないようです。
また、最初の if ブロックで行ったように、One Drive ターゲット情報を取得しようとしましたSymbolicLinkReparseBuffer
。MountPointReparseBuffer
しかし、それは私にゴミを与えてしまいました。
質問:
1) One Drive などの REPARSE_POINTS のターゲットを正しく判断するにはどうすればよいですか?
2) Windows 10 Fall Creators update SDK は、そのような REPARSE_POINT タグをさらに追加します。ターゲットを解決できない場合 (One Drive など)、それらを処理するための一般的な経験則は何ですか (つまり、ソース REPARSE_POINTS) ? ファイルまたはディレクトリとして ?