On Sep 13 13:28, Yoni Londner wrote: > Hi, > > > However, isn't that kind of a chicken/egg situation? If you want to > > reuse the content of the FILE_BOTH{_ID}_DIRECTORY_INFORMATION structure > > from a previous call to readdir, you would have to call the > > I am not talking about reusing info from a previous readdir. > > Every single file cygwin tries to access, it does it in a loop, > trying afterwards to check for *.lnk file. > > Using the directory query operations, it is possible to get this > info faster: > instead of getting file info for FOO and then for "FOO.lnk", > Cygwin can query the directory info for "FOO FOO.LNK" (for the file > requested, plus its possible symlink file).
I don't understand how you think this should work. The filter expression given to NtQueryDirectoryFile is either a constant string and has to match the filename exactly, or it contains wildcards. This is documented behaviour: http://msdn.microsoft.com/en-us/library/ff567047%28VS.85%29.aspx So, "foo" works, "foo*" works, but a list like "foo foo.exe foo.lnk" does not. There's also the problem of handling NFS shares. However, I just had an idea how to speed up symlink_info::check without neglecting NFS shares. This will take some time, though since it turns a lot of code upside down. Stay tuned. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat