NtQueryDirectoryFileは子フォルダも再帰的に列挙する場合にntdllのOpenFileを利用すると更に効果大きかった記憶がある
NtQueryDirectoryFileはフォルダのハンドルが必要になる訳だけど、OpenFileはCreateFileと違って親フォルダのハンドルからファイルを開けるのでパス指定のCreateFileよりもオーバーヘッドが少ないからね
その分だけコードが複雑にはなって手間はかかるしそもそもntdllはインターナルなのであんまり利用すべきではないかもしれないが