状況:
を使用してディレクトリをスキャンしていNtQueryDirectoryFile(..., FileBothDirectoryInformation, ...)
ます。この呼び出しによって返されるデータに加えて、セキュリティ データ (通常は によって返されるGetKernelObjectSecurity
) と代替ストリームのリスト ( NtQueryInformationFile(..., FileStreamInformation)
) が必要です。
問題:
セキュリティと代替ストリーム情報を取得するには、各ファイルを開く (および閉じる) 必要があります。私のテストでは、操作が 3 分の 1 遅くなりました。追加するGetKernelObjectSecurity
とNtQueryInformationFile
、4 分の 1 に遅くなります (12 倍になります)。
質問: この情報を取得するためのより良い/より高速な方法はありますか?
アイデア: ターゲット ファイル システムがローカルの場合、直接アクセスできます (NTFS/FAT/etc の詳細を知っていれば、生データから情報を抽出できます)。しかし、リモート ファイル システムでは機能しません。