From 3b8b4734d6d72d6151144c6a2ded1ef026e889fb Mon Sep 17 00:00:00 2001 From: Pierre Schweitzer Date: Sun, 19 Oct 2014 19:48:52 +0000 Subject: [PATCH] [NTFS] 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 | 27 ++++++++++------------- reactos/drivers/filesystems/ntfs/misc.c | 12 ---------- reactos/drivers/filesystems/ntfs/ntfs.h | 4 ---- 3 files changed, 12 insertions(+), 31 deletions(-) diff --git a/reactos/drivers/filesystems/ntfs/dirctl.c b/reactos/drivers/filesystems/ntfs/dirctl.c index 28c18779d0f..fa1daca484f 100644 --- a/reactos/drivers/filesystems/ntfs/dirctl.c +++ b/reactos/drivers/filesystems/ntfs/dirctl.c @@ -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); diff --git a/reactos/drivers/filesystems/ntfs/misc.c b/reactos/drivers/filesystems/ntfs/misc.c index d1a4ffcf9df..91593e58377 100644 --- a/reactos/drivers/filesystems/ntfs/misc.c +++ b/reactos/drivers/filesystems/ntfs/misc.c @@ -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) diff --git a/reactos/drivers/filesystems/ntfs/ntfs.h b/reactos/drivers/filesystems/ntfs/ntfs.h index eb75a8ca324..663cba24a37 100644 --- a/reactos/drivers/filesystems/ntfs/ntfs.h +++ b/reactos/drivers/filesystems/ntfs/ntfs.h @@ -692,10 +692,6 @@ CdfsSwapString(PWCHAR Out, ULONG Count); #endif -VOID -NtfsDateTimeToFileTime(ULONGLONG NtfsTime, - PLARGE_INTEGER SystemTime); - VOID NtfsFileFlagsToAttributes(ULONG NtfsAttributes, PULONG FileAttributes); -- 2.17.1