Author: ekohl
Date: Fri Nov 29 14:05:43 2013
New Revision: 61145

URL: http://svn.reactos.org/svn/reactos?rev=61145&view=rev
Log:
[FASTFAT]
FsdGetFsVolumeInformation: Return volume creation time.

Modified:
    trunk/reactos/drivers/filesystems/fastfat/volume.c

Modified: trunk/reactos/drivers/filesystems/fastfat/volume.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/fastfat/volume.c?rev=61145&r1=61144&r2=61145&view=diff
==============================================================================
--- trunk/reactos/drivers/filesystems/fastfat/volume.c  [iso-8859-1] (original)
+++ trunk/reactos/drivers/filesystems/fastfat/volume.c  [iso-8859-1] Fri Nov 29 
14:05:43 2013
@@ -21,6 +21,8 @@
     PFILE_FS_VOLUME_INFORMATION FsVolumeInfo,
     PULONG BufferLength)
 {
+    PDEVICE_EXTENSION DeviceExt;
+
     DPRINT("FsdGetFsVolumeInformation()\n");
     DPRINT("FsVolumeInfo = %p\n", FsVolumeInfo);
     DPRINT("BufferLength %lu\n", *BufferLength);
@@ -34,14 +36,29 @@
 
     if (*BufferLength < (sizeof(FILE_FS_VOLUME_INFORMATION) + 
DeviceObject->Vpb->VolumeLabelLength))
         return STATUS_BUFFER_OVERFLOW;
+
+    DeviceExt = DeviceObject->DeviceExtension;
 
     /* valid entries */
     FsVolumeInfo->VolumeSerialNumber = DeviceObject->Vpb->SerialNumber;
     FsVolumeInfo->VolumeLabelLength = DeviceObject->Vpb->VolumeLabelLength;
     RtlCopyMemory(FsVolumeInfo->VolumeLabel, DeviceObject->Vpb->VolumeLabel, 
FsVolumeInfo->VolumeLabelLength);
 
-    /* dummy entries */
-    FsVolumeInfo->VolumeCreationTime.QuadPart = 0;
+    if (DeviceExt->VolumeFcb->Flags & FCB_IS_FATX_ENTRY)
+    {
+        FsdDosDateTimeToSystemTime(DeviceExt,
+                                   
DeviceExt->VolumeFcb->entry.FatX.CreationDate,
+                                   
DeviceExt->VolumeFcb->entry.FatX.CreationTime,
+                                   &FsVolumeInfo->VolumeCreationTime);
+    }
+    else
+    {
+        FsdDosDateTimeToSystemTime(DeviceExt,
+                                   
DeviceExt->VolumeFcb->entry.Fat.CreationDate,
+                                   
DeviceExt->VolumeFcb->entry.Fat.CreationTime,
+                                   &FsVolumeInfo->VolumeCreationTime);
+    }
+
     FsVolumeInfo->SupportsObjects = FALSE;
 
     DPRINT("Finished FsdGetFsVolumeInformation()\n");


Reply via email to