Author: ekohl
Date: Sat Feb 21 14:19:16 2015
New Revision: 66385
URL: 
http://svn.reactos.org/svn/reactos?rev=66385&view=rev
Log:
[NTOSKRNL]
NtQueryInformationFile: Implement the FileAllInformation case according to 'File
System Internals' page 485.
Modified:
    trunk/reactos/ntoskrnl/io/iomgr/iofunc.c
Modified: trunk/reactos/ntoskrnl/io/iomgr/iofunc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/io/iomgr/iofunc.c…
==============================================================================
--- trunk/reactos/ntoskrnl/io/iomgr/iofunc.c    [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/io/iomgr/iofunc.c    [iso-8859-1] Sat Feb 21 14:19:16 2015
@@ -1896,6 +1896,7 @@
     PFILE_ACCESS_INFORMATION AccessBuffer;
     PFILE_MODE_INFORMATION ModeBuffer;
     PFILE_ALIGNMENT_INFORMATION AlignmentBuffer;
+    PFILE_ALL_INFORMATION AllBuffer;
     PAGED_CODE();
     IOTRACE(IO_API_DEBUG, "FileHandle: %p\n", FileHandle);
@@ -2098,6 +2099,16 @@
         AlignmentBuffer->AlignmentRequirement = DeviceObject->AlignmentRequirement;
         Irp->IoStatus.Information = sizeof(FILE_ALIGNMENT_INFORMATION);
         CallDriver = FALSE;
+    }
+    else if (FileInformationClass == FileAllInformation)
+    {
+        AllBuffer = Irp->AssociatedIrp.SystemBuffer;
+        AllBuffer->AccessInformation.AccessFlags = HandleInformation.GrantedAccess;
+        AllBuffer->ModeInformation.Mode = IopGetFileMode(FileObject);
+        AllBuffer->AlignmentInformation.AlignmentRequirement =
DeviceObject->AlignmentRequirement;
+        Irp->IoStatus.Information = sizeof(FILE_ACCESS_INFORMATION) +
+                                    sizeof(FILE_MODE_INFORMATION) +
+                                    sizeof(FILE_ALIGNMENT_INFORMATION);
     }
     /* Call the Driver */