From nobody Fri Dec 27 20:08:18 2024 Delivered-To: importer@patchew.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 150097685229093.54993897232771; Tue, 25 Jul 2017 03:00:52 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 5234821D28FF8; Tue, 25 Jul 2017 02:58:45 -0700 (PDT) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4CD9E21D28FF5 for ; Tue, 25 Jul 2017 02:58:44 -0700 (PDT) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jul 2017 03:00:45 -0700 Received: from ray-dev.ccr.corp.intel.com ([10.239.9.7]) by orsmga004.jf.intel.com with ESMTP; 25 Jul 2017 03:00:45 -0700 X-Original-To: edk2-devel@lists.01.org X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.40,411,1496127600"; d="scan'208";a="111708186" From: Ruiyu Ni To: edk2-devel@lists.01.org Date: Tue, 25 Jul 2017 18:00:28 +0800 Message-Id: <20170725100029.31284-2-ruiyu.ni@intel.com> X-Mailer: git-send-email 2.12.2.windows.2 In-Reply-To: <20170725100029.31284-1-ruiyu.ni@intel.com> References: <20170725100029.31284-1-ruiyu.ni@intel.com> Subject: [edk2] [PATCH 1/2] Nt32Pkg/WinNtSimpleFileSystemDxe: Change GetInfo() to get TimeZone. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Li Huajing MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" From: Li Huajing Signed-off-by: Huajing Li Reviewed-by: Ruiyu Ni --- .../WinNtSimpleFileSystem.c | 78 +++++++++---------= ---- 1 file changed, 32 insertions(+), 46 deletions(-) diff --git a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c b/Nt3= 2Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c index b687e9c957..f598c8e546 100644 --- a/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c +++ b/Nt32Pkg/WinNtSimpleFileSystemDxe/WinNtSimpleFileSystem.c @@ -1492,6 +1492,30 @@ Returns: } } =20 +/** + Convert the FileTime to EfiTime. + + @param PrivateFile Pointer to WIN_NT_EFI_FILE_PRIVATE. + @param TimeZone Pointer to the current time zone. + @param FileTime Pointer to file time. + @param EfiTime Pointer to EFI time. +**/ +VOID +WinNtFileTimeToEfiTime ( =20 + IN CONST WIN_NT_EFI_FILE_PRIVATE *PrivateFile, + IN TIME_ZONE_INFORMATION *TimeZone, + IN CONST FILETIME *FileTime, + OUT EFI_TIME *EfiTime + ) +{ + FILETIME TempFileTime; + SYSTEMTIME SystemTime; + + PrivateFile->WinNtThunk->FileTimeToLocalFileTime (FileTime, &TempFileTim= e); + PrivateFile->WinNtThunk->FileTimeToSystemTime (&TempFileTime, &SystemTim= e); + WinNtSystemTimeToEfiTime (&SystemTime, TimeZone, EfiTime); +} + EFI_STATUS EFIAPI WinNtSimpleFileSystemRead ( @@ -1535,7 +1559,6 @@ Returns: UINTN NameSize; UINTN ResultSize; UINTN Index; - SYSTEMTIME SystemTime; EFI_FILE_INFO *Info; WCHAR *pw; TIME_ZONE_INFORMATION TimeZone; @@ -1642,24 +1665,9 @@ Returns: Info->Size =3D ResultSize; =20 PrivateFile->WinNtThunk->GetTimeZoneInformation (&TimeZone); - - PrivateFile->WinNtThunk->FileTimeToLocalFileTime ( - &PrivateFile->FindBuf.ftCreationTime, - &PrivateFile->FindBuf.ftCreationTime - ); - - PrivateFile->WinNtThunk->FileTimeToSystemTime (&PrivateFile->FindBuf.f= tCreationTime, &SystemTime); - - WinNtSystemTimeToEfiTime (&SystemTime, &TimeZone, &Info->CreateTime); - - PrivateFile->WinNtThunk->FileTimeToLocalFileTime ( - &PrivateFile->FindBuf.ftLastWriteTime, - &PrivateFile->FindBuf.ftLastWriteTime - ); - - PrivateFile->WinNtThunk->FileTimeToSystemTime (&PrivateFile->FindBuf.f= tLastWriteTime, &SystemTime); - - WinNtSystemTimeToEfiTime (&SystemTime, &TimeZone, &Info->ModificationT= ime); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &PrivateFile->FindBuf.= ftCreationTime, &Info->CreateTime); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &PrivateFile->FindBuf.= ftLastAccessTime, &Info->LastAccessTime); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &PrivateFile->FindBuf.= ftLastWriteTime, &Info->ModificationTime); =20 Info->FileSize =3D PrivateFile->FindBuf.nFileSizeLow; =20 @@ -1988,9 +1996,9 @@ Returns: UINTN ResultSize; EFI_FILE_INFO *Info; BY_HANDLE_FILE_INFORMATION FileInfo; - SYSTEMTIME SystemTime; CHAR16 *RealFileName; CHAR16 *TempPointer; + TIME_ZONE_INFORMATION TimeZone; =20 Size =3D SIZE_OF_EFI_FILE_INFO; =20 @@ -2022,32 +2030,10 @@ Returns: Info->FileSize =3D FileInfo.nFileSizeLow; Info->PhysicalSize =3D Info->FileSize; =20 - PrivateFile->WinNtThunk->FileTimeToLocalFileTime(&FileInfo.ftCreationT= ime, &FileInfo.ftCreationTime); - PrivateFile->WinNtThunk->FileTimeToSystemTime (&FileInfo.ftCreationTim= e, &SystemTime); - Info->CreateTime.Year =3D SystemTime.wYear; - Info->CreateTime.Month =3D (UINT8) SystemTime.wMonth; - Info->CreateTime.Day =3D (UINT8) SystemTime.wDay; - Info->CreateTime.Hour =3D (UINT8) SystemTime.wHour; - Info->CreateTime.Minute =3D (UINT8) SystemTime.wMinute; - Info->CreateTime.Second =3D (UINT8) SystemTime.wSecond; - - PrivateFile->WinNtThunk->FileTimeToLocalFileTime(&FileInfo.ftLastAcces= sTime, &FileInfo.ftLastAccessTime); - PrivateFile->WinNtThunk->FileTimeToSystemTime (&FileInfo.ftLastAccessT= ime, &SystemTime); - Info->LastAccessTime.Year =3D SystemTime.wYear; - Info->LastAccessTime.Month =3D (UINT8) SystemTime.wMonth; - Info->LastAccessTime.Day =3D (UINT8) SystemTime.wDay; - Info->LastAccessTime.Hour =3D (UINT8) SystemTime.wHour; - Info->LastAccessTime.Minute =3D (UINT8) SystemTime.wMinute; - Info->LastAccessTime.Second =3D (UINT8) SystemTime.wSecond; - - PrivateFile->WinNtThunk->FileTimeToLocalFileTime(&FileInfo.ftLastWrite= Time, &FileInfo.ftLastWriteTime); - PrivateFile->WinNtThunk->FileTimeToSystemTime (&FileInfo.ftLastWriteTi= me, &SystemTime); - Info->ModificationTime.Year =3D SystemTime.wYear; - Info->ModificationTime.Month =3D (UINT8) SystemTime.wMonth; - Info->ModificationTime.Day =3D (UINT8) SystemTime.wDay; - Info->ModificationTime.Hour =3D (UINT8) SystemTime.wHour; - Info->ModificationTime.Minute =3D (UINT8) SystemTime.wMinute; - Info->ModificationTime.Second =3D (UINT8) SystemTime.wSecond; + PrivateFile->WinNtThunk->GetTimeZoneInformation (&TimeZone); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &FileInfo.ftCreationTi= me, &Info->CreateTime); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &FileInfo.ftLastAccess= Time, &Info->LastAccessTime); + WinNtFileTimeToEfiTime (PrivateFile, &TimeZone, &FileInfo.ftLastWriteT= ime, &Info->ModificationTime); =20 if (FileInfo.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) { Info->Attribute |=3D EFI_FILE_ARCHIVE; --=20 2.12.2.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel