X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=ntoskrnl%2Fio%2Fdir.c;h=2c2bcccd4b9994520ff71fd5f3896591f425487e;hp=f3a2b3f1ab9205daa60c48b4fbe1d13689c360af;hb=eb024af57d7380b80eb8ef762b3c56d5f73af859;hpb=52e0db6a2cd54fe02367981d926ef99bb3071870 diff --git a/ntoskrnl/io/dir.c b/ntoskrnl/io/dir.c index f3a2b3f..2c2bccc 100644 --- a/ntoskrnl/io/dir.c +++ b/ntoskrnl/io/dir.c @@ -138,16 +138,24 @@ NtQueryDirectoryFile( } /* SL_INDEX_SPECIFIED may take precedense over SL_RESTART_SCAN * and 'FileInformation' may not be valid if !RestartScan. + * ext2fsd.sys-V0.10A requires unspecified SL_INDEX_SPECIFIED + * as it would otherwise expect direct pointer to EXT2 directory data block + * which we have no information about. FIXME: Why W32 filesystems required + * SL_INDEX_SPECIFIED? Is it still valid? */ if (!RestartScan) { - IoStack->Flags = IoStack->Flags | SL_INDEX_SPECIFIED; switch (FileInformationClass) { case FileIdBothDirectoryInformation: IoStack->Parameters.QueryDirectory.FileIndex = ((FILE_ID_BOTH_DIR_INFORMATION *)FileInformation)->FileIndex; break; + case FileBothDirectoryInformation: + IoStack->Parameters.QueryDirectory.FileIndex = ((FILE_BOTH_DIR_INFORMATION *)FileInformation)->FileIndex; + break; default: KeBugCheck(0); /* FIXME: such 'FileInformationClass' NOT IMPLEMENTED YET */ } + if (IoStack->Parameters.QueryDirectory.FileIndex) + IoStack->Flags = IoStack->Flags | SL_INDEX_SPECIFIED; } IoStack->Parameters.QueryDirectory.FileInformationClass =