X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdrivers%2Ffilesystems%2Fcdfs%2Fdirctl.c;h=f49bd040c09c5b1201135d1308023f036b77a782;hp=3289600f2a09bd6cf82fb52d1a3146356da897f5;hb=3d271a97946c751ea95b7fc999220e0013269e52;hpb=996f952333e45cc621911fb1e602d9cd2f6c2426 diff --git a/reactos/drivers/filesystems/cdfs/dirctl.c b/reactos/drivers/filesystems/cdfs/dirctl.c index 3289600f2a0..f49bd040c09 100644 --- a/reactos/drivers/filesystems/cdfs/dirctl.c +++ b/reactos/drivers/filesystems/cdfs/dirctl.c @@ -689,20 +689,11 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, if (Status == STATUS_BUFFER_OVERFLOW) { - if (Buffer0) - { - Buffer0->NextEntryOffset = 0; - } break; } } else { - if (Buffer0) - { - Buffer0->NextEntryOffset = 0; - } - if (First) { Status = STATUS_NO_SUCH_FILE; @@ -717,12 +708,13 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, Buffer0 = (PFILE_NAMES_INFORMATION)Buffer; Buffer0->FileIndex = FileIndex++; Ccb->Entry++; + BufferLength -= Buffer0->NextEntryOffset; if (Stack->Flags & SL_RETURN_SINGLE_ENTRY) { break; } - BufferLength -= Buffer0->NextEntryOffset; + Buffer += Buffer0->NextEntryOffset; } @@ -734,6 +726,7 @@ CdfsQueryDirectory(PDEVICE_OBJECT DeviceObject, if (FileIndex > 0) { Status = STATUS_SUCCESS; + Irp->IoStatus.Information = Stack->Parameters.QueryDirectory.Length - BufferLength; } return(Status); @@ -793,6 +786,8 @@ CdfsDirectoryControl( Irp = IrpContext->Irp; DeviceObject = IrpContext->DeviceObject; + Irp->IoStatus.Information = 0; + switch (IrpContext->MinorFunction) { case IRP_MN_QUERY_DIRECTORY: @@ -811,11 +806,6 @@ CdfsDirectoryControl( break; } - if (Status != STATUS_PENDING) - { - Irp->IoStatus.Information = 0; - } - return(Status); }