[NTFS]
authorPierre Schweitzer <pierre@reactos.org>
Sun, 19 Oct 2014 19:48:52 +0000 (19:48 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 19 Oct 2014 19:48:52 +0000 (19:48 +0000)
Bugfixing... Part 8/X:
- Actually, the files timestamp are already stored in the correct format on-disk... I should have listened to Thomas...

This fixes incorrect dates display when enumerating a directory contents. My apologies Thomas :-(.
Last to fix: the file size which is broken.

svn path=/trunk/; revision=64832

reactos/drivers/filesystems/ntfs/dirctl.c
reactos/drivers/filesystems/ntfs/misc.c
reactos/drivers/filesystems/ntfs/ntfs.h

index 28c1877..fa1daca 100644 (file)
@@ -175,11 +175,10 @@ NtfsGetDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
         ROUND_UP(sizeof(FILE_DIRECTORY_INFORMATION) + Length, sizeof(ULONG));
     RtlCopyMemory(Info->FileName, FileName->Name, Length);
 
-    /* Convert file times */
-    NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime);
-    NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime);
-    NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime);
-    NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime);
+    Info->CreationTime.QuadPart = FileName->CreationTime;
+    Info->LastAccessTime.QuadPart = FileName->LastAccessTime;
+    Info->LastWriteTime.QuadPart = FileName->LastWriteTime;
+    Info->ChangeTime.QuadPart = FileName->ChangeTime;
 
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
@@ -217,11 +216,10 @@ NtfsGetFullDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
         ROUND_UP(sizeof(FILE_FULL_DIRECTORY_INFORMATION) + Length, sizeof(ULONG));
     RtlCopyMemory(Info->FileName, FileName->Name, Length);
 
-    /* Convert file times */
-    NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime);
-    NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime);
-    NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime);
-    NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime);
+    Info->CreationTime.QuadPart = FileName->CreationTime;
+    Info->LastAccessTime.QuadPart = FileName->LastAccessTime;
+    Info->LastWriteTime.QuadPart = FileName->LastWriteTime;
+    Info->ChangeTime.QuadPart = FileName->ChangeTime;
 
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
@@ -260,11 +258,10 @@ NtfsGetBothDirectoryInformation(PDEVICE_EXTENSION DeviceExt,
         ROUND_UP(sizeof(FILE_BOTH_DIR_INFORMATION) + Length, sizeof(ULONG));
     RtlCopyMemory(Info->FileName, FileName->Name, Length);
 
-    /* Convert file times */
-    NtfsDateTimeToFileTime(FileName->CreationTime, &Info->CreationTime);
-    NtfsDateTimeToFileTime(FileName->LastAccessTime, &Info->LastAccessTime);
-    NtfsDateTimeToFileTime(FileName->LastWriteTime, &Info->LastWriteTime);
-    NtfsDateTimeToFileTime(FileName->ChangeTime, &Info->ChangeTime);
+    Info->CreationTime.QuadPart = FileName->CreationTime;
+    Info->LastAccessTime.QuadPart = FileName->LastAccessTime;
+    Info->LastWriteTime.QuadPart = FileName->LastWriteTime;
+    Info->ChangeTime.QuadPart = FileName->ChangeTime;
 
     /* Convert file flags */
     NtfsFileFlagsToAttributes(FileName->FileAttributes, &Info->FileAttributes);
index d1a4ffc..91593e5 100644 (file)
@@ -97,18 +97,6 @@ NtfsAllocateIrpContext(PDEVICE_OBJECT DeviceObject,
     return IrpContext;
 }
 
-/* See:
- -> http://msdn.microsoft.com/en-us/library/ms724228
- -> http://bos.asmhackers.net/docs/filesystems/ntfs/standard.html#layout
- */
-VOID
-NtfsDateTimeToFileTime(ULONGLONG NtfsTime,
-                       PLARGE_INTEGER SystemTime)
-{
-
-    SystemTime->QuadPart = NtfsTime + 116444736000000000;
-}
-
 VOID
 NtfsFileFlagsToAttributes(ULONG NtfsAttributes,
                           PULONG FileAttributes)
index eb75a8c..663cba2 100644 (file)
@@ -692,10 +692,6 @@ CdfsSwapString(PWCHAR Out,
               ULONG Count);
 #endif
 
-VOID
-NtfsDateTimeToFileTime(ULONGLONG NtfsTime,
-                       PLARGE_INTEGER SystemTime);
-
 VOID
 NtfsFileFlagsToAttributes(ULONG NtfsAttributes,
                           PULONG FileAttributes);