1

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個の再解析ポイントを正しく理解し、それらにアクセスする方法を理解しているかどうかの私の質問。

4

1 に答える 1

2

MSDN ドキュメントが間違っていることを理解しました: ファイル/ディレクトリ自体は、再解析ポイント自体を 1 つだけ持つことができます (もちろん、ディレクトリには、再解析ポイントを含む 31 個を超えるファイル/ディレクトリを含めることができます)。

制限 31 は、ネストされたシンボリックリンク (など) に対してのみ有効です。ケース 1: Link1->Link2、Link2->Link3、... Link32->RealDir ここでは、RealDir が必要な場合、Link1 を開くことはできません ケース 2: C:\L1\L2\L3\ を開きたい場合L4...\L32\file.txt および L1 は別のディレクトリへのシンボリック リンクであり、ターゲットのサブディレクトリ L2 は別のシンボリック リンクです。これも 31 個を超えるネストされたリンクでは不可能です。

于 2013-12-26T09:41:53.353 に答える