On Mon, July 28, 2008 13:31, Corinna Vinschen wrote: > Two possible reasons come to mind: > > - The status code returned by TAS is not one of those three > - The status code returned by TAS is one of those three, but the > first call with FileIdBothDirectoryInformation has screwed up > TAS for some reason. > > You need to debug this further for a solution. What you should > do: > > - [snip GetVolInfo URL] > > - Build the latest Cygwin 1.5.25 from source > > http://cygwin.com/faq/faq-nochunks.html#faq.programming.building-cygwin > > and right in front of the comment starting in line 1713 in > fhandler_disk_file.cc add > > if (!NT_SUCCESS (status)) > debug_printf ("NtQueryDirectoryFile failed, status %p, win32 error > %lu", > status, RtlNtStatusToDosError (status)); > > Add the same lines preceeding the closing brace in line 1728. > > Then replace the cygwin1.dll with your own built cygwin1.dll and > rerun strace like in your mail. > > The idea is to get the exact status codes.
OK, did that. With the `augmented' cygwin1.dll in place, my `strace ls' now says (excerpted): -------------------------------------------------------------------- 1481 230803 [main] ls 5132 path_conv::check: this->path(h:\), has_acls(0) 562 231365 [main] ls 5132 build_fh_pc: fh 0x61168D40 7242 238607 [main] ls 5132 fhandler_disk_file::opendir: 0x6857F0 = opendir (/cygdrive/h) 934 239541 [main] ls 5132 fhandler_disk_file::readdir: NtQueryDirectoryFile failed, status 0xC00000BB, win32 error 50 526 240067 [main] ls 5132 fhandler_disk_file::readdir: NtQueryDirectoryFile failed, status 0xC00000BB, win32 error 50 489 240556 [main] ls 5132 geterrno_from_win_error: windows error 50 == errno 88 608 241164 [main] ls 5132 fhandler_disk_file::readdir: 0 = readdir (0x6857F0, 0x22C6D4) (.) 1026 242190 [main] ls 5132 fhandler_disk_file::readdir: NtQueryDirectoryFile failed, status 0xC00000BB, win32 error 50 515 242705 [main] ls 5132 fhandler_disk_file::readdir: NtQueryDirectoryFile failed, status 0xC00000BB, win32 error 50 593 243298 [main] ls 5132 geterrno_from_win_error: windows error 50 == errno 88 -------------------------------------------------------------------- and is otherwise as before, as far as I can tell. I trust that was required? I haven't tried running against a snapshot build yet, as suggested in your later response. -- SAm. -- Academic Excellence at the Heart of Scotland. The University of Stirling is a charity registered in Scotland, number SC 011159. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/