ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
December 2017
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
26 participants
355 discussions
Start a n
N
ew thread
[reactos] 02/03: [NTFS] Use LookasideList allocations for FILE_RECORD_HEADER. TODO: use a specific tag
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=216a2cae733be32a80c1c…
commit 216a2cae733be32a80c1ce8281fc08c9bbea27b9 Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 14:14:24 2017 +0100 [NTFS] Use LookasideList allocations for FILE_RECORD_HEADER. TODO: use a specific tag This, and previous commit, should speed up a bit the driver until caching gets implemented --- drivers/filesystems/ntfs/attrib.c | 14 ++--- drivers/filesystems/ntfs/create.c | 38 +++++-------- drivers/filesystems/ntfs/dirctl.c | 4 +- drivers/filesystems/ntfs/fcb.c | 27 ++++----- drivers/filesystems/ntfs/finfo.c | 22 ++++---- drivers/filesystems/ntfs/fsctl.c | 55 +++++++++++-------- drivers/filesystems/ntfs/mft.c | 110 ++++++++++++++++++------------------- drivers/filesystems/ntfs/ntfs.h | 2 + drivers/filesystems/ntfs/rw.c | 28 +++++----- drivers/filesystems/ntfs/volinfo.c | 26 ++++----- 10 files changed, 156 insertions(+), 170 deletions(-) diff --git a/drivers/filesystems/ntfs/attrib.c b/drivers/filesystems/ntfs/attrib.c index 846c16da80..1a04b763a2 100644 --- a/drivers/filesystems/ntfs/attrib.c +++ b/drivers/filesystems/ntfs/attrib.c @@ -1083,9 +1083,7 @@ FreeClusters(PNTFS_VCB Vcb, } // Read the $Bitmap file - BitmapRecord = ExAllocatePoolWithTag(NonPagedPool, - Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + BitmapRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (BitmapRecord == NULL) { DPRINT1("Error: Unable to allocate memory for bitmap file record!\n"); @@ -1096,7 +1094,7 @@ FreeClusters(PNTFS_VCB Vcb, if (!NT_SUCCESS(Status)) { DPRINT1("Error: Unable to read file record for bitmap!\n"); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BitmapRecord); return 0; } @@ -1104,7 +1102,7 @@ FreeClusters(PNTFS_VCB Vcb, if (!NT_SUCCESS(Status)) { DPRINT1("Error: Unable to find data attribute for bitmap file!\n"); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BitmapRecord); return 0; } @@ -1116,7 +1114,7 @@ FreeClusters(PNTFS_VCB Vcb, { DPRINT1("Error: Unable to allocate memory for bitmap file data!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BitmapRecord); return 0; } @@ -1156,13 +1154,13 @@ FreeClusters(PNTFS_VCB Vcb, { ReleaseAttributeContext(DataContext); ExFreePoolWithTag(BitmapData, TAG_NTFS); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BitmapRecord); return Status; } ReleaseAttributeContext(DataContext); ExFreePoolWithTag(BitmapData, TAG_NTFS); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BitmapRecord); // Save updated data runs to file record diff --git a/drivers/filesystems/ntfs/create.c b/drivers/filesystems/ntfs/create.c index f37a9518cd..0ce5771ae3 100644 --- a/drivers/filesystems/ntfs/create.c +++ b/drivers/filesystems/ntfs/create.c @@ -114,9 +114,7 @@ NtfsMoonWalkID(PDEVICE_EXTENSION DeviceExt, DPRINT1("NtfsMoonWalkID(%p, %I64x, %p)\n", DeviceExt, Id, OutPath); RtlZeroMemory(FullPath, sizeof(FullPath)); - MftRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + MftRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (MftRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -155,7 +153,7 @@ NtfsMoonWalkID(PDEVICE_EXTENSION DeviceExt, break; } - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, MftRecord); if (!NT_SUCCESS(Status)) return Status; @@ -191,9 +189,7 @@ NtfsOpenFileById(PDEVICE_EXTENSION DeviceExt, return STATUS_OBJECT_NAME_NOT_FOUND; } - MftRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + MftRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (MftRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -202,13 +198,13 @@ NtfsOpenFileById(PDEVICE_EXTENSION DeviceExt, Status = ReadFileRecord(DeviceExt, MftId, MftRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, MftRecord); return Status; } if (!(MftRecord->Flags & FRH_IN_USE)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, MftRecord); return STATUS_OBJECT_PATH_NOT_FOUND; } @@ -221,14 +217,14 @@ NtfsOpenFileById(PDEVICE_EXTENSION DeviceExt, Status = NtfsMakeFCBFromDirEntry(DeviceExt, NULL, &Name, NULL, MftRecord, MftId, &FCB); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, MftRecord); return Status; } } ASSERT(FCB != NULL); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, MftRecord); Status = NtfsAttachFCBToFileObject(DeviceExt, FCB, @@ -506,9 +502,7 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject, ExAcquireResourceExclusiveLite(&(Fcb->MainResource), TRUE); - fileRecord = ExAllocatePoolWithTag(NonPagedPool, - Fcb->Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + fileRecord = ExAllocateFromNPagedLookasideList(&Fcb->Vcb->FileRecLookasideList); if (fileRecord) { @@ -532,7 +526,7 @@ NtfsCreateFile(PDEVICE_OBJECT DeviceObject, DoneOverwriting: if (fileRecord) - ExFreePoolWithTag(fileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Fcb->Vcb->FileRecLookasideList, fileRecord); if (dataContext) ReleaseAttributeContext(dataContext); @@ -741,7 +735,7 @@ NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to create empty B-Tree!\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -760,7 +754,7 @@ NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, { DPRINT1("ERROR: Unable to create empty index root!\n"); DestroyBTree(Tree); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -773,7 +767,7 @@ NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, { DPRINT1("ERROR: Failed to add index root to new file record!\n"); ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -803,7 +797,7 @@ NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, } ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -829,9 +823,7 @@ NtfsCreateEmptyFileRecord(PDEVICE_EXTENSION DeviceExt) DPRINT1("NtfsCreateEmptyFileRecord(%p)\n", DeviceExt); // allocate memory for file record - FileRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (!FileRecord) { DPRINT1("ERROR: Unable to allocate memory for file record!\n"); @@ -963,7 +955,7 @@ NtfsCreateFileRecord(PDEVICE_EXTENSION DeviceExt, CaseSensitive); } - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } diff --git a/drivers/filesystems/ntfs/dirctl.c b/drivers/filesystems/ntfs/dirctl.c index ab784fce3d..3c8d3cdb9a 100644 --- a/drivers/filesystems/ntfs/dirctl.c +++ b/drivers/filesystems/ntfs/dirctl.c @@ -388,7 +388,7 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) { DPRINT1("Ignoring duplicate MFT entry 0x%x\n", MFTRecord); Ccb->Entry++; - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExtension->FileRecLookasideList, FileRecord); continue; } OldMFTRecord = MFTRecord; @@ -468,7 +468,7 @@ NtfsQueryDirectory(PNTFS_IRP_CONTEXT IrpContext) } BufferLength -= Buffer0->NextEntryOffset; Buffer += Buffer0->NextEntryOffset; - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExtension->FileRecLookasideList, FileRecord); } if (Buffer0) diff --git a/drivers/filesystems/ntfs/fcb.c b/drivers/filesystems/ntfs/fcb.c index f8057ee2ff..8a4f460546 100644 --- a/drivers/filesystems/ntfs/fcb.c +++ b/drivers/filesystems/ntfs/fcb.c @@ -311,9 +311,7 @@ NtfsMakeRootFCB(PNTFS_VCB Vcb) PFILE_RECORD_HEADER MftRecord; PFILENAME_ATTRIBUTE FileName; - MftRecord = ExAllocatePoolWithTag(NonPagedPool, - Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + MftRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (MftRecord == NULL) { return NULL; @@ -321,21 +319,21 @@ NtfsMakeRootFCB(PNTFS_VCB Vcb) if (!NT_SUCCESS(ReadFileRecord(Vcb, NTFS_FILE_ROOT, MftRecord))) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return NULL; } FileName = GetFileNameFromRecord(Vcb, MftRecord, NTFS_FILE_NAME_WIN32); if (!FileName) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return NULL; } Fcb = NtfsCreateFCB(L"\\", NULL, Vcb); if (!Fcb) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return NULL; } @@ -355,7 +353,7 @@ NtfsMakeRootFCB(PNTFS_VCB Vcb) NtfsAddFCBToTable(Vcb, Fcb); NtfsGrabFCB(Vcb, Fcb); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Fcb; } @@ -570,6 +568,7 @@ NtfsDirFindFile(PNTFS_VCB Vcb, if ((FileRecord->Flags & FRH_DIRECTORY) && Colon != 0) { + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return STATUS_INVALID_PARAMETER; } else if (Colon != 0) @@ -583,7 +582,7 @@ NtfsDirFindFile(PNTFS_VCB Vcb, } Status = NtfsMakeFCBFromDirEntry(Vcb, DirectoryFcb, &File, Colon, FileRecord, MFTIndex, FoundFCB); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return Status; } @@ -734,9 +733,7 @@ NtfsReadFCBAttribute(PNTFS_VCB Vcb, PNTFS_ATTR_CONTEXT AttrCtxt; ULONGLONG AttrLength; - FileRecord = ExAllocatePoolWithTag(NonPagedPool, - Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (FileRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -745,14 +742,14 @@ NtfsReadFCBAttribute(PNTFS_VCB Vcb, Status = ReadFileRecord(Vcb, pFCB->MFTIndex, FileRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return Status; } Status = FindAttribute(Vcb, FileRecord, Type, Name, NameLength, &AttrCtxt, NULL); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return Status; } @@ -761,14 +758,14 @@ NtfsReadFCBAttribute(PNTFS_VCB Vcb, if (*Data == NULL) { ReleaseAttributeContext(AttrCtxt); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return STATUS_INSUFFICIENT_RESOURCES; } ReadAttribute(Vcb, AttrCtxt, 0, *Data, AttrLength); ReleaseAttributeContext(AttrCtxt); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return STATUS_SUCCESS; } diff --git a/drivers/filesystems/ntfs/finfo.c b/drivers/filesystems/ntfs/finfo.c index fb7df5f4d4..9a1b44b388 100644 --- a/drivers/filesystems/ntfs/finfo.c +++ b/drivers/filesystems/ntfs/finfo.c @@ -236,7 +236,7 @@ NtfsGetSteamInformation(PNTFS_FCB Fcb, if (*BufferLength < sizeof(FILE_STREAM_INFORMATION)) return STATUS_BUFFER_TOO_SMALL; - FileRecord = ExAllocatePoolWithTag(NonPagedPool, DeviceExt->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) { DPRINT1("Not enough memory!\n"); @@ -247,7 +247,7 @@ NtfsGetSteamInformation(PNTFS_FCB Fcb, if (!NT_SUCCESS(Status)) { DPRINT1("Can't find record!\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -285,7 +285,7 @@ NtfsGetSteamInformation(PNTFS_FCB Fcb, } FindCloseAttribute(&Context); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -577,7 +577,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, // Allocate non-paged memory for the file record - FileRecord = ExAllocatePoolWithTag(NonPagedPool, DeviceExt->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) { DPRINT1("Couldn't allocate memory for file record!"); @@ -591,7 +591,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, { // We couldn't get the file's record. Free the memory and return the error DPRINT1("Can't find record for %wS!\n", Fcb->ObjectName); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -607,7 +607,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, NewFileSize)) { DPRINT1("Couldn't decrease file size!\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return STATUS_USER_MAPPED_FILE; } } @@ -626,7 +626,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, if (!NT_SUCCESS(Status)) { DPRINT1("No '%S' data stream associated with file!\n", Fcb->Stream); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -642,7 +642,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, { // TODO - just fail for now ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return STATUS_ACCESS_DENIED; } } @@ -652,7 +652,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, if (!NT_SUCCESS(Status)) { ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -663,7 +663,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, { DPRINT1("Unable to find FileName attribute associated with file!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return STATUS_INVALID_PARAMETER; } @@ -684,7 +684,7 @@ NtfsSetEndOfFile(PNTFS_FCB Fcb, CaseSensitive); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } diff --git a/drivers/filesystems/ntfs/fsctl.c b/drivers/filesystems/ntfs/fsctl.c index 76337ec448..87858e07c0 100644 --- a/drivers/filesystems/ntfs/fsctl.c +++ b/drivers/filesystems/ntfs/fsctl.c @@ -274,11 +274,13 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, ExFreePool(BootSector); - DeviceExt->MasterFileTable = ExAllocatePoolWithTag(NonPagedPool, - NtfsInfo->BytesPerFileRecord, - TAG_NTFS); + ExInitializeNPagedLookasideList(&DeviceExt->FileRecLookasideList, + NULL, NULL, 0, NtfsInfo->BytesPerFileRecord, TAG_NTFS, 0); + + DeviceExt->MasterFileTable = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (DeviceExt->MasterFileTable == NULL) { + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return STATUS_INSUFFICIENT_RESOURCES; } @@ -291,7 +293,8 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, if (!NT_SUCCESS(Status)) { DPRINT1("Failed reading MFT.\n"); - ExFreePool(DeviceExt->MasterFileTable); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, DeviceExt->MasterFileTable); + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return Status; } @@ -305,17 +308,17 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, if (!NT_SUCCESS(Status)) { DPRINT1("Can't find data attribute for Master File Table.\n"); - ExFreePool(DeviceExt->MasterFileTable); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, DeviceExt->MasterFileTable); + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return Status; } - VolumeRecord = ExAllocatePoolWithTag(NonPagedPool, - NtfsInfo->BytesPerFileRecord, - TAG_NTFS); + VolumeRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (VolumeRecord == NULL) { DPRINT1("Allocation failed for volume record\n"); - ExFreePool(DeviceExt->MasterFileTable); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, DeviceExt->MasterFileTable); + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return STATUS_INSUFFICIENT_RESOURCES; } @@ -327,8 +330,9 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, if (!NT_SUCCESS(Status)) { DPRINT1("Failed reading volume file\n"); - ExFreePool(VolumeRecord); - ExFreePool(DeviceExt->MasterFileTable); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, VolumeRecord); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, DeviceExt->MasterFileTable); + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return Status; } @@ -367,8 +371,9 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, if (VolumeFcb == NULL) { DPRINT1("Failed allocating volume FCB\n"); - ExFreePool(VolumeRecord); - ExFreePool(DeviceExt->MasterFileTable); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, VolumeRecord); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, DeviceExt->MasterFileTable); + ExDeleteNPagedLookasideList(&DeviceExt->FileRecLookasideList); return STATUS_INSUFFICIENT_RESOURCES; } @@ -398,7 +403,7 @@ NtfsGetVolumeData(PDEVICE_OBJECT DeviceObject, ReleaseAttributeContext(AttrCtxt); } - ExFreePool(VolumeRecord); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, VolumeRecord); NtfsInfo->MftZoneReservation = NtfsQueryMftZoneReservation(); @@ -418,6 +423,7 @@ NtfsMountVolume(PDEVICE_OBJECT DeviceObject, PNTFS_CCB Ccb = NULL; PNTFS_VCB Vcb = NULL; NTSTATUS Status; + BOOLEAN Lookaside = FALSE; DPRINT1("NtfsMountVolume() called\n"); @@ -446,6 +452,8 @@ NtfsMountVolume(PDEVICE_OBJECT DeviceObject, if (!NT_SUCCESS(Status)) goto ByeBye; + Lookaside = TRUE; + NewDeviceObject->Flags |= DO_DIRECT_IO; Vcb = (PVOID)NewDeviceObject->DeviceExtension; RtlZeroMemory(Vcb, sizeof(NTFS_VCB)); @@ -558,6 +566,9 @@ ByeBye: if (NewDeviceObject) IoDeleteDevice(NewDeviceObject); + + if (Lookaside) + ExDeleteNPagedLookasideList(&Vcb->FileRecLookasideList); } DPRINT("NtfsMountVolume() done (Status: %lx)\n", Status); @@ -672,9 +683,7 @@ GetNtfsFileRecord(PDEVICE_EXTENSION DeviceExt, return STATUS_BUFFER_TOO_SMALL; } - FileRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -705,7 +714,7 @@ GetNtfsFileRecord(PDEVICE_EXTENSION DeviceExt, OutputBuffer->FileRecordLength = DeviceExt->NtfsInfo.BytesPerFileRecord; RtlCopyMemory(OutputBuffer->FileRecordBuffer, FileRecord, DeviceExt->NtfsInfo.BytesPerFileRecord); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); Irp->IoStatus.Information = FIELD_OFFSET(NTFS_FILE_RECORD_OUTPUT_BUFFER, FileRecordBuffer) + DeviceExt->NtfsInfo.BytesPerFileRecord; @@ -794,9 +803,7 @@ GetVolumeBitmap(PDEVICE_EXTENSION DeviceExt, ToCopy = Stack->Parameters.FileSystemControl.OutputBufferLength - FIELD_OFFSET(VOLUME_BITMAP_BUFFER, Buffer); } - BitmapRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + BitmapRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (BitmapRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -806,7 +813,7 @@ GetVolumeBitmap(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("Failed reading volume bitmap: %lx\n", Status); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; } @@ -814,7 +821,7 @@ GetVolumeBitmap(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("Failed find $DATA for bitmap: %lx\n", Status); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; } @@ -833,7 +840,7 @@ GetVolumeBitmap(PDEVICE_EXTENSION DeviceExt, } _SEH2_END; ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; } diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index 8594f79e56..4724e8d899 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -277,7 +277,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Couldn't find $BITMAP attribute of Mft!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); return Status; } @@ -308,7 +308,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!BitmapBuffer) { DPRINT1("ERROR: Unable to allocate memory for bitmap attribute!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ReleaseAttributeContext(BitmapContext); return STATUS_INSUFFICIENT_RESOURCES; @@ -326,7 +326,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (BytesRead != BitmapSize.LowPart) { DPRINT1("ERROR: Bytes read != Bitmap size!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -338,7 +338,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to set size of $MFT data attribute!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -351,7 +351,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Couldn't find $BITMAP attribute of Mft!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); return Status; } @@ -369,7 +369,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to set size of bitmap attribute!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -384,7 +384,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to update $MFT file record!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -395,7 +395,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) Status = WriteAttribute(Vcb, BitmapContext, 0, BitmapBuffer, NewBitmapSize, &LengthWritten, Vcb->MasterFileTable); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -410,7 +410,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to write blank file record!\n"); - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -422,7 +422,7 @@ IncreaseMftSize(PDEVICE_EXTENSION Vcb, BOOLEAN CanWait) Status = UpdateMftMirror(Vcb); // Cleanup - ExFreePoolWithTag(BlankFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, BlankFileRecord); ExReleaseResourceLite(&(Vcb->DirResource)); ExFreePoolWithTag(BitmapBuffer, TAG_NTFS); ReleaseAttributeContext(BitmapContext); @@ -1301,7 +1301,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, // Do we need to read the file record? if (FileRecord == NULL) { - FileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (!FileRecord) { DPRINT1("Error: Couldn't allocate file record!\n"); @@ -1326,7 +1326,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, { DPRINT1("ERROR: Couldn't find matching attribute!\n"); if(FileRecordAllocated) - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return Status; } @@ -1340,7 +1340,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, DPRINT1("DRIVER ERROR: Data being written extends past end of file record!\n"); ReleaseAttributeContext(FoundContext); if (FileRecordAllocated) - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); return STATUS_INVALID_PARAMETER; } @@ -1355,7 +1355,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, ReleaseAttributeContext(FoundContext); if (FileRecordAllocated) - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, FileRecord); if (NT_SUCCESS(Status)) *RealLengthWritten = Length; @@ -1624,9 +1624,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, NewAllocationSize, CaseSensitive ? "TRUE" : "FALSE"); - MftRecord = ExAllocatePoolWithTag(NonPagedPool, - Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + MftRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (MftRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -1635,7 +1633,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, Status = ReadFileRecord(Vcb, ParentMFTIndex, MftRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -1643,7 +1641,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, Status = FindAttribute(Vcb, MftRecord, AttributeIndexRoot, L"$I30", 4, &IndexRootCtx, NULL); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -1651,7 +1649,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, if (IndexRecord == NULL) { ReleaseAttributeContext(IndexRootCtx); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return STATUS_INSUFFICIENT_RESOURCES; } @@ -1661,7 +1659,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, DPRINT1("ERROR: Failed to read Index Root!\n"); ExFreePoolWithTag(IndexRecord, TAG_NTFS); ReleaseAttributeContext(IndexRootCtx); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); } IndexRoot = (PINDEX_ROOT_ATTRIBUTE)IndexRecord; @@ -1699,7 +1697,7 @@ UpdateFileNameRecord(PDEVICE_EXTENSION Vcb, ReleaseAttributeContext(IndexRootCtx); ExFreePoolWithTag(IndexRecord, TAG_NTFS); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -2158,9 +2156,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, ULONG NodeSize; // Allocate memory for the parent directory - ParentFileRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + ParentFileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (!ParentFileRecord) { DPRINT1("ERROR: Couldn't allocate memory for file record!\n"); @@ -2171,7 +2167,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, Status = ReadFileRecord(DeviceExt, DirectoryMftIndex, ParentFileRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); DPRINT1("ERROR: Couldn't read parent directory with index %I64u\n", DirectoryMftIndex); return Status; @@ -2194,7 +2190,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, { DPRINT1("ERROR: Couldn't find $I30 $INDEX_ROOT attribute for parent directory with MFT #: %I64u!\n", DirectoryMftIndex); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2230,7 +2226,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, { DPRINT1("ERROR: Couldn't allocate memory for index root attribute!\n"); ReleaseAttributeContext(IndexRootContext); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return STATUS_INSUFFICIENT_RESOURCES; } @@ -2241,7 +2237,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DPRINT1("ERROR: Couln't read index root attribute for Mft index #%I64u\n", DirectoryMftIndex); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2256,7 +2252,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DPRINT1("ERROR: Failed to create B-Tree from Index!\n"); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2280,7 +2276,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2329,7 +2325,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2341,7 +2337,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2390,7 +2386,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2402,7 +2398,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2444,7 +2440,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, DestroyBTree(NewTree); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2471,7 +2467,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); DPRINT1("ERROR: Unable to set resident attribute length!\n"); return Status; } @@ -2484,7 +2480,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to update file record of directory with index: %llx\n", DirectoryMftIndex); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); @@ -2505,7 +2501,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2539,7 +2535,7 @@ NtfsAddFilenameToDirectory(PDEVICE_EXTENSION DeviceExt, ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); ReleaseAttributeContext(IndexRootContext); ExFreePoolWithTag(I30IndexRoot, TAG_NTFS); - ExFreePoolWithTag(ParentFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, ParentFileRecord); return Status; } @@ -2668,7 +2664,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) ULONG LengthWritten; // Allocate memory for the Mft mirror file record - MirrorFileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + MirrorFileRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (!MirrorFileRecord) { DPRINT1("Error: Failed to allocate memory for $MFTMirr!\n"); @@ -2680,7 +2676,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to read $MFTMirr!\n"); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return Status; } @@ -2689,7 +2685,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Couldn't find $DATA attribute!\n"); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return Status; } @@ -2699,7 +2695,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) { DPRINT1("ERROR: Couldn't find $DATA attribute!\n"); ReleaseAttributeContext(MirrDataContext); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return Status; } @@ -2715,7 +2711,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) DPRINT1("Error: Couldn't allocate memory for $DATA buffer!\n"); ReleaseAttributeContext(MftDataContext); ReleaseAttributeContext(MirrDataContext); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return STATUS_INSUFFICIENT_RESOURCES; } @@ -2729,7 +2725,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) ReleaseAttributeContext(MftDataContext); ReleaseAttributeContext(MirrDataContext); ExFreePoolWithTag(DataBuffer, TAG_NTFS); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return STATUS_UNSUCCESSFUL; } @@ -2750,7 +2746,7 @@ UpdateMftMirror(PNTFS_VCB Vcb) ReleaseAttributeContext(MftDataContext); ReleaseAttributeContext(MirrDataContext); ExFreePoolWithTag(DataBuffer, TAG_NTFS); - ExFreePoolWithTag(MirrorFileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MirrorFileRecord); return Status; } @@ -3116,9 +3112,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, CaseSensitive ? "TRUE" : "FALSE", OutMFTIndex); - MftRecord = ExAllocatePoolWithTag(NonPagedPool, - Vcb->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + MftRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (MftRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -3127,7 +3121,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, Status = ReadFileRecord(Vcb, MFTIndex, MftRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -3135,7 +3129,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, Status = FindAttribute(Vcb, MftRecord, AttributeIndexRoot, L"$I30", 4, &IndexRootCtx, NULL); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -3143,7 +3137,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, if (IndexRecord == NULL) { ReleaseAttributeContext(IndexRootCtx); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return STATUS_INSUFFICIENT_RESOURCES; } @@ -3170,7 +3164,7 @@ NtfsFindMftRecord(PDEVICE_EXTENSION Vcb, OutMFTIndex); ExFreePoolWithTag(IndexRecord, TAG_NTFS); - ExFreePoolWithTag(MftRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, MftRecord); return Status; } @@ -3213,7 +3207,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, FsRtlDissectName(Current, &Current, &Remaining); } - *FileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + *FileRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (*FileRecord == NULL) { DPRINT("NtfsLookupFileAt: Can't allocate MFT record\n"); @@ -3224,7 +3218,7 @@ NtfsLookupFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsLookupFileAt: Can't read MFT record\n"); - ExFreePoolWithTag(*FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, *FileRecord); return Status; } @@ -3328,7 +3322,7 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, return Status; } - *FileRecord = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + *FileRecord = ExAllocateFromNPagedLookasideList(&Vcb->FileRecLookasideList); if (*FileRecord == NULL) { DPRINT("NtfsFindFileAt: Can't allocate MFT record\n"); @@ -3339,7 +3333,7 @@ NtfsFindFileAt(PDEVICE_EXTENSION Vcb, if (!NT_SUCCESS(Status)) { DPRINT("NtfsFindFileAt: Can't read MFT record\n"); - ExFreePoolWithTag(*FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&Vcb->FileRecLookasideList, *FileRecord); return Status; } diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index 0b64b7247e..7b88f7b7c4 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -116,6 +116,8 @@ typedef struct NTFS_INFO NtfsInfo; + NPAGED_LOOKASIDE_LIST FileRecLookasideList; + ULONG MftDataOffset; ULONG Flags; ULONG OpenHandleCount; diff --git a/drivers/filesystems/ntfs/rw.c b/drivers/filesystems/ntfs/rw.c index 038caa4516..fc3a62c7cc 100644 --- a/drivers/filesystems/ntfs/rw.c +++ b/drivers/filesystems/ntfs/rw.c @@ -79,7 +79,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, return STATUS_NOT_IMPLEMENTED; } - FileRecord = ExAllocatePoolWithTag(NonPagedPool, DeviceExt->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) { DPRINT1("Not enough memory!\n"); @@ -90,7 +90,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("Can't find record!\n"); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -122,7 +122,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, FindCloseAttribute(&Context); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -131,7 +131,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, { DPRINT1("Reading beyond stream end!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return STATUS_END_OF_FILE; } @@ -159,7 +159,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, { DPRINT1("Not enough memory!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return STATUS_INSUFFICIENT_RESOURCES; } AllocatedBuffer = TRUE; @@ -171,7 +171,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, { DPRINT1("Read failure!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); if (AllocatedBuffer) { ExFreePoolWithTag(ReadBuffer, TAG_NTFS); @@ -180,7 +180,7 @@ NtfsReadFile(PDEVICE_EXTENSION DeviceExt, } ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); *LengthRead = ToRead; @@ -355,7 +355,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, } // allocate non-paged memory for the FILE_RECORD_HEADER - FileRecord = ExAllocatePoolWithTag(NonPagedPool, DeviceExt->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + FileRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (FileRecord == NULL) { DPRINT1("Not enough memory! Can't write %wS!\n", Fcb->PathName); @@ -369,7 +369,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, { // We couldn't get the file's record. Free the memory and return the error DPRINT1("Can't find record for %wS!\n", Fcb->ObjectName); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -408,7 +408,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, FindCloseAttribute(&Context); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -437,7 +437,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); *LengthWritten = 0; return Status; } @@ -469,7 +469,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, { // TODO - just fail for now ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); *LengthWritten = 0; return STATUS_ACCESS_DENIED; } @@ -485,7 +485,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, { DPRINT1("Write failure!\n"); ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } @@ -499,7 +499,7 @@ NTSTATUS NtfsWriteFile(PDEVICE_EXTENSION DeviceExt, } ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(FileRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, FileRecord); return Status; } diff --git a/drivers/filesystems/ntfs/volinfo.c b/drivers/filesystems/ntfs/volinfo.c index 6b7e598819..565a6012bc 100644 --- a/drivers/filesystems/ntfs/volinfo.c +++ b/drivers/filesystems/ntfs/volinfo.c @@ -47,9 +47,7 @@ NtfsGetFreeClusters(PDEVICE_EXTENSION DeviceExt) DPRINT1("NtfsGetFreeClusters(%p)\n", DeviceExt); - BitmapRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + BitmapRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (BitmapRecord == NULL) { return 0; @@ -58,14 +56,14 @@ NtfsGetFreeClusters(PDEVICE_EXTENSION DeviceExt) Status = ReadFileRecord(DeviceExt, NTFS_FILE_BITMAP, BitmapRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return 0; } Status = FindAttribute(DeviceExt, BitmapRecord, AttributeData, L"", 0, &DataContext, NULL); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return 0; } @@ -75,7 +73,7 @@ NtfsGetFreeClusters(PDEVICE_EXTENSION DeviceExt) if (BitmapData == NULL) { ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return 0; } @@ -94,7 +92,7 @@ NtfsGetFreeClusters(PDEVICE_EXTENSION DeviceExt) FreeClusters = RtlNumberOfClearBits(&Bitmap); ExFreePoolWithTag(BitmapData, TAG_NTFS); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return FreeClusters; } @@ -122,9 +120,7 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, DPRINT1("NtfsAllocateClusters(%p, %lu, %lu, %p, %p)\n", DeviceExt, FirstDesiredCluster, DesiredClusters, FirstAssignedCluster, AssignedClusters); - BitmapRecord = ExAllocatePoolWithTag(NonPagedPool, - DeviceExt->NtfsInfo.BytesPerFileRecord, - TAG_NTFS); + BitmapRecord = ExAllocateFromNPagedLookasideList(&DeviceExt->FileRecLookasideList); if (BitmapRecord == NULL) { return STATUS_INSUFFICIENT_RESOURCES; @@ -133,14 +129,14 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, Status = ReadFileRecord(DeviceExt, NTFS_FILE_BITMAP, BitmapRecord); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; } Status = FindAttribute(DeviceExt, BitmapRecord, AttributeData, L"", 0, &DataContext, NULL); if (!NT_SUCCESS(Status)) { - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; } @@ -151,7 +147,7 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, if (BitmapData == NULL) { ReleaseAttributeContext(DataContext); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return STATUS_INSUFFICIENT_RESOURCES; } @@ -169,7 +165,7 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, ReleaseAttributeContext(DataContext); ExFreePoolWithTag(BitmapData, TAG_NTFS); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return STATUS_DISK_FULL; } @@ -201,7 +197,7 @@ NtfsAllocateClusters(PDEVICE_EXTENSION DeviceExt, ReleaseAttributeContext(DataContext); ExFreePoolWithTag(BitmapData, TAG_NTFS); - ExFreePoolWithTag(BitmapRecord, TAG_NTFS); + ExFreeToNPagedLookasideList(&DeviceExt->FileRecLookasideList, BitmapRecord); return Status; }
6 years, 11 months
1
0
0
0
[reactos] 01/03: [NTFS] Use LookasideList allocations for NTFS_ATTR_CONTEXT. TODO: use a specific tag
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3ddf44ff1025283067133…
commit 3ddf44ff1025283067133459c672fdad2313748d Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 12:15:17 2017 +0100 [NTFS] Use LookasideList allocations for NTFS_ATTR_CONTEXT. TODO: use a specific tag --- drivers/filesystems/ntfs/mft.c | 10 ++++------ drivers/filesystems/ntfs/ntfs.c | 3 +++ drivers/filesystems/ntfs/ntfs.h | 1 + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index f623c72e68..8594f79e56 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -42,9 +42,7 @@ PrepareAttributeContext(PNTFS_ATTR_RECORD AttrRecord) { PNTFS_ATTR_CONTEXT Context; - Context = ExAllocatePoolWithTag(NonPagedPool, - sizeof(NTFS_ATTR_CONTEXT), - TAG_NTFS); + Context = ExAllocateFromNPagedLookasideList(&NtfsGlobalData->AttrCtxtLookasideList); if(!Context) { DPRINT1("Error: Unable to allocate memory for context!\n"); @@ -56,7 +54,7 @@ PrepareAttributeContext(PNTFS_ATTR_RECORD AttrRecord) if(!Context->pRecord) { DPRINT1("Error: Unable to allocate memory for attribute record!\n"); - ExFreePoolWithTag(Context, TAG_NTFS); + ExFreeToNPagedLookasideList(&NtfsGlobalData->AttrCtxtLookasideList, Context); return NULL; } @@ -93,7 +91,7 @@ PrepareAttributeContext(PNTFS_ATTR_RECORD AttrRecord) { DPRINT1("Unable to convert data runs to MCB!\n"); ExFreePoolWithTag(Context->pRecord, TAG_NTFS); - ExFreePoolWithTag(Context, TAG_NTFS); + ExFreeToNPagedLookasideList(&NtfsGlobalData->AttrCtxtLookasideList, Context); return NULL; } } @@ -115,7 +113,7 @@ ReleaseAttributeContext(PNTFS_ATTR_CONTEXT Context) ExFreePoolWithTag(Context->pRecord, TAG_NTFS); } - ExFreePoolWithTag(Context, TAG_NTFS); + ExFreeToNPagedLookasideList(&NtfsGlobalData->AttrCtxtLookasideList, Context); } diff --git a/drivers/filesystems/ntfs/ntfs.c b/drivers/filesystems/ntfs/ntfs.c index c9bbc490bd..53733e1dec 100644 --- a/drivers/filesystems/ntfs/ntfs.c +++ b/drivers/filesystems/ntfs/ntfs.c @@ -146,6 +146,9 @@ DriverEntry(PDRIVER_OBJECT DriverObject, /* Initialize lookaside list for FCBs */ ExInitializeNPagedLookasideList(&NtfsGlobalData->FcbLookasideList, NULL, NULL, 0, sizeof(NTFS_FCB), TAG_FCB, 0); + /* Initialize lookaside list for attributes contexts */ + ExInitializeNPagedLookasideList(&NtfsGlobalData->AttrCtxtLookasideList, + NULL, NULL, 0, sizeof(NTFS_ATTR_CONTEXT), TAG_NTFS, 0); /* Driver can't be unloaded */ DriverObject->DriverUnload = NULL; diff --git a/drivers/filesystems/ntfs/ntfs.h b/drivers/filesystems/ntfs/ntfs.h index 97f4acd1d6..0b64b7247e 100644 --- a/drivers/filesystems/ntfs/ntfs.h +++ b/drivers/filesystems/ntfs/ntfs.h @@ -152,6 +152,7 @@ typedef struct FAST_IO_DISPATCH FastIoDispatch; NPAGED_LOOKASIDE_LIST IrpContextLookasideList; NPAGED_LOOKASIDE_LIST FcbLookasideList; + NPAGED_LOOKASIDE_LIST AttrCtxtLookasideList; BOOLEAN EnableWriteSupport; } NTFS_GLOBAL_DATA, *PNTFS_GLOBAL_DATA;
6 years, 11 months
1
0
0
0
[reactos] 05/05: [NTFS] Rewrite ReleaseAttributeContext() so that its null checks are consistent
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=849fa7fbae3d73da2970f…
commit 849fa7fbae3d73da2970f0ff7d71b33fbb63e254 Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 10:36:29 2017 +0100 [NTFS] Rewrite ReleaseAttributeContext() so that its null checks are consistent CID 1427067 --- drivers/filesystems/ntfs/mft.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index cf4f084549..f623c72e68 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -105,13 +105,15 @@ PrepareAttributeContext(PNTFS_ATTR_RECORD AttrRecord) VOID ReleaseAttributeContext(PNTFS_ATTR_CONTEXT Context) { - if (Context->pRecord->IsNonResident) + if (Context->pRecord) { - FsRtlUninitializeLargeMcb(&Context->DataRunsMCB); - } + if (Context->pRecord->IsNonResident) + { + FsRtlUninitializeLargeMcb(&Context->DataRunsMCB); + } - if(Context->pRecord) ExFreePoolWithTag(Context->pRecord, TAG_NTFS); + } ExFreePoolWithTag(Context, TAG_NTFS); }
6 years, 11 months
1
0
0
0
[reactos] 04/05: [NTFS] Don't dereference NULL IRP
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=007d3d382a27e9c2b0d63…
commit 007d3d382a27e9c2b0d63a35e3da0e09a2134847 Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 10:31:12 2017 +0100 [NTFS] Don't dereference NULL IRP CID 1427057 --- drivers/filesystems/ntfs/rw.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/filesystems/ntfs/rw.c b/drivers/filesystems/ntfs/rw.c index 94d05de9ae..038caa4516 100644 --- a/drivers/filesystems/ntfs/rw.c +++ b/drivers/filesystems/ntfs/rw.c @@ -545,6 +545,9 @@ NtfsWrite(PNTFS_IRP_CONTEXT IrpContext) DPRINT("NtfsWrite(IrpContext %p)\n", IrpContext); ASSERT(IrpContext); + // get the I/O request packet + Irp = IrpContext->Irp; + // This request is not allowed on the main device object if (IrpContext->DeviceObject == NtfsGlobalData->DeviceObject) { @@ -554,9 +557,6 @@ NtfsWrite(PNTFS_IRP_CONTEXT IrpContext) return STATUS_INVALID_DEVICE_REQUEST; } - // get the I/O request packet - Irp = IrpContext->Irp; - // get the File control block Fcb = (PNTFS_FCB)IrpContext->FileObject->FsContext; ASSERT(Fcb);
6 years, 11 months
1
0
0
0
[reactos] 03/05: [NTFS] Don't leak memory in case of failure while creating a directory
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7a88e3bfd40f9f507c95a…
commit 7a88e3bfd40f9f507c95aec545b6ea491dfcccde Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 10:27:31 2017 +0100 [NTFS] Don't leak memory in case of failure while creating a directory CID 1427065 --- drivers/filesystems/ntfs/create.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/filesystems/ntfs/create.c b/drivers/filesystems/ntfs/create.c index b591b79073..f37a9518cd 100644 --- a/drivers/filesystems/ntfs/create.c +++ b/drivers/filesystems/ntfs/create.c @@ -772,6 +772,7 @@ NtfsCreateDirectory(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to add index root to new file record!\n"); + ExFreePoolWithTag(NewIndexRoot, TAG_NTFS); ExFreePoolWithTag(FileRecord, TAG_NTFS); return Status; }
6 years, 11 months
1
0
0
0
[reactos] 02/05: [NTFS] Don't leak attributes contextes in the btree management functions
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9d9cce2838e2f27738181…
commit 9d9cce2838e2f2773818108b3cfe6be6c3e482cd Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 10:21:42 2017 +0100 [NTFS] Don't leak attributes contextes in the btree management functions CID 1427030, 1427062 --- drivers/filesystems/ntfs/btree.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/drivers/filesystems/ntfs/btree.c b/drivers/filesystems/ntfs/btree.c index 9fb1b29c0f..35a6eb6cd0 100644 --- a/drivers/filesystems/ntfs/btree.c +++ b/drivers/filesystems/ntfs/btree.c @@ -732,7 +732,8 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, { DPRINT1("Filesystem corruption detected!\n"); DestroyBTree(Tree); - return STATUS_FILE_CORRUPT_ERROR; + Status = STATUS_FILE_CORRUPT_ERROR; + goto Cleanup; } // Start at the first node entry @@ -749,7 +750,8 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, { DPRINT1("ERROR: Couldn't allocate memory for next key!\n"); DestroyBTree(Tree); - return STATUS_INSUFFICIENT_RESOURCES; + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Cleanup; } RootNode->KeyCount++; @@ -763,7 +765,8 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, { DPRINT1("ERROR: Couldn't allocate memory for next key!\n"); DestroyBTree(Tree); - return STATUS_INSUFFICIENT_RESOURCES; + Status = STATUS_INSUFFICIENT_RESOURCES; + goto Cleanup; } RtlZeroMemory(NextKey, sizeof(B_TREE_KEY)); @@ -786,7 +789,8 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, { DPRINT1("ERROR: Couldn't create child node!\n"); DestroyBTree(Tree); - return STATUS_NOT_IMPLEMENTED; + Status = STATUS_NOT_IMPLEMENTED; + goto Cleanup; } } @@ -813,7 +817,8 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, { DPRINT1("ERROR: Couldn't create child node!\n"); DestroyBTree(Tree); - return STATUS_NOT_IMPLEMENTED; + Status = STATUS_NOT_IMPLEMENTED; + goto Cleanup; } } @@ -822,11 +827,13 @@ CreateBTreeFromIndex(PDEVICE_EXTENSION Vcb, } *NewTree = Tree; + Status = STATUS_SUCCESS; +Cleanup: if (IndexAllocationContext) ReleaseAttributeContext(IndexAllocationContext); - return STATUS_SUCCESS; + return Status; } /** @@ -1242,6 +1249,7 @@ UpdateIndexAllocation(PDEVICE_EXTENSION DeviceExt, if (!NT_SUCCESS(Status)) { DPRINT1("ERROR: Failed to add index bitmap!\n"); + ReleaseAttributeContext(IndexAllocationContext); return Status; } @@ -2019,4 +2027,4 @@ SplitBTreeNode(PB_TREE Tree, #endif return STATUS_SUCCESS; -} \ No newline at end of file +}
6 years, 11 months
1
0
0
0
[reactos] 01/05: [NTFS] Don't leak memory when reading or writing non-resident attributes
by Pierre Schweitzer
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=391056ba2244701ac02db…
commit 391056ba2244701ac02db6f2d4dae808a654c224 Author: Pierre Schweitzer <pierre(a)reactos.org> AuthorDate: Sun Dec 31 10:11:12 2017 +0100 [NTFS] Don't leak memory when reading or writing non-resident attributes CID 1427048, 1427070 --- drivers/filesystems/ntfs/mft.c | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/drivers/filesystems/ntfs/mft.c b/drivers/filesystems/ntfs/mft.c index 4896d6d550..cf4f084549 100644 --- a/drivers/filesystems/ntfs/mft.c +++ b/drivers/filesystems/ntfs/mft.c @@ -1064,6 +1064,10 @@ ReadAttribute(PDEVICE_EXTENSION Vcb, //TEMPTEMP ULONG UsedBufferSize; TempBuffer = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + if (TempBuffer == NULL) + { + return STATUS_INSUFFICIENT_RESOURCES; + } LastLCN = 0; CurrentOffset = 0; @@ -1099,6 +1103,7 @@ ReadAttribute(PDEVICE_EXTENSION Vcb, if (*DataRun == 0) { + ExFreePoolWithTag(TempBuffer, TAG_NTFS); return AlreadyRead; } @@ -1379,7 +1384,11 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, CurrentOffset = 0; // This will be rewritten in the next iteration to just use the DataRuns MCB directly - TempBuffer = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + TempBuffer = ExAllocatePoolWithTag(NonPagedPool, Vcb->NtfsInfo.BytesPerFileRecord, TAG_NTFS); + if (TempBuffer == NULL) + { + return STATUS_INSUFFICIENT_RESOURCES; + } ConvertLargeMCBToDataRuns(&Context->DataRunsMCB, TempBuffer, @@ -1404,7 +1413,8 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, // (it may require increasing the allocation size). DataRunStartLCN = -1; DPRINT1("FIXME: Writing to sparse files is not supported yet!\n"); - return STATUS_NOT_IMPLEMENTED; + Status = STATUS_NOT_IMPLEMENTED; + goto Cleanup; } // Have we reached the data run we're trying to write to? @@ -1421,7 +1431,8 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, // (Presently, this code will rarely be reached, the write will usually have already failed by now) // [We can reach here by creating a new file record when the MFT isn't large enough] DPRINT1("FIXME: Master File Table needs to be enlarged.\n"); - return STATUS_END_OF_FILE; + Status = STATUS_END_OF_FILE; + goto Cleanup; } CurrentOffset += DataRunLength * Vcb->NtfsInfo.BytesPerCluster; @@ -1455,7 +1466,7 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, Context->CacheRunLastLCN = LastLCN; Context->CacheRunCurrentOffset = CurrentOffset; - return Status; + goto Cleanup; } Length -= WriteLength; @@ -1488,7 +1499,8 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, if (DataRunStartLCN == -1) { DPRINT1("FIXME: Don't know how to write to sparse files yet! (DataRunStartLCN == -1)\n"); - return STATUS_NOT_IMPLEMENTED; + Status = STATUS_NOT_IMPLEMENTED; + goto Cleanup; } else { @@ -1519,7 +1531,8 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, { // Failed sanity check. DPRINT1("Encountered EOF before expected!\n"); - return STATUS_END_OF_FILE; + Status = STATUS_END_OF_FILE; + goto Cleanup; } break; @@ -1541,10 +1554,6 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, } } // end while (Length > 0) [more data to write] - // TEMPTEMP - if (Context->pRecord->IsNonResident) - ExFreePoolWithTag(TempBuffer, TAG_NTFS); - Context->CacheRun = DataRun; Context->CacheRunOffset = Offset + *RealLengthWritten; Context->CacheRunStartLCN = DataRunStartLCN; @@ -1552,6 +1561,11 @@ WriteAttribute(PDEVICE_EXTENSION Vcb, Context->CacheRunLastLCN = LastLCN; Context->CacheRunCurrentOffset = CurrentOffset; +Cleanup: + // TEMPTEMP + if (Context->pRecord->IsNonResident) + ExFreePoolWithTag(TempBuffer, TAG_NTFS); + return Status; }
6 years, 11 months
1
0
0
0
[reactos] 02/02: [SETUPAPI] Fix extraction of files from a cabinet file using the SetupQueueCopy and SetupCommitFileQueue method. CORE-14164
by Hermès Bélusca-Maïto
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e0baa58f1b54b9d49e172…
commit e0baa58f1b54b9d49e1724ed559f7b9a5cff6a9c Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> AuthorDate: Sun Dec 31 02:47:03 2017 +0100 [SETUPAPI] Fix extraction of files from a cabinet file using the SetupQueueCopy and SetupCommitFileQueue method. CORE-14164 - Contrary to what Wine thought, this works even if the cabinet file does not have a ".cab" extension. - Instead of polluting the directory where the cabinet file exists with all the files extracted from it, we only extract the needed file to a temporary folder (thus being sure it does not overwrite any other existing file with the same name), and then we move the extracted file to its final destination with rename. --- dll/win32/setupapi/queue.c | 75 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/dll/win32/setupapi/queue.c b/dll/win32/setupapi/queue.c index b556418389..060984be8f 100644 --- a/dll/win32/setupapi/queue.c +++ b/dll/win32/setupapi/queue.c @@ -362,7 +362,11 @@ static WCHAR *get_destination_dir( HINF hinf, const WCHAR *section ) } +#ifndef __REACTOS__ static void (WINAPI *pExtractFiles)( LPSTR, LPSTR, DWORD, DWORD, DWORD, DWORD ); +#else +static void (WINAPI *pExtractFiles)( LPSTR, LPSTR, DWORD, LPSTR, LPVOID, DWORD ); +#endif /*********************************************************************** * extract_cabinet_file @@ -372,14 +376,21 @@ static void (WINAPI *pExtractFiles)( LPSTR, LPSTR, DWORD, DWORD, DWORD, DWORD ); static BOOL extract_cabinet_file( const WCHAR *cabinet, const WCHAR *root, const WCHAR *src, const WCHAR *dst ) { +#ifndef __REACTOS__ static const WCHAR extW[] = {'.','c','a','b',0}; +#endif static HMODULE advpack; char *cab_path, *cab_file; int len = strlenW( cabinet ); +#ifdef __REACTOS__ + TRACE("extract_cabinet_file(cab = '%s' ; root = '%s' ; src = '%s' ; dst = '%s')\n", + debugstr_w(cabinet), debugstr_w(root), debugstr_w(src), debugstr_w(dst)); +#else /* make sure the cabinet file has a .cab extension */ if (len <= 4 || strcmpiW( cabinet + len - 4, extW )) return FALSE; +#endif if (!pExtractFiles) { if (!advpack && !(advpack = LoadLibraryA( "advpack.dll" ))) @@ -405,10 +416,74 @@ static BOOL extract_cabinet_file( const WCHAR *cabinet, const WCHAR *root, if (cab_file[0] && cab_file[strlen(cab_file)-1] != '\\') strcat( cab_file, "\\" ); WideCharToMultiByte( CP_ACP, 0, cabinet, -1, cab_file + strlen(cab_file), len, NULL, NULL ); FIXME( "awful hack: extracting cabinet %s\n", debugstr_a(cab_file) ); + +#ifdef __REACTOS__ + { + BOOL Success; + char *src_file; + const WCHAR *src_fileW; + WCHAR TempPath[MAX_PATH]; + + /* Retrieve the temporary path */ + if (!GetTempPathW(ARRAYSIZE(TempPath), TempPath)) + { + ERR("GetTempPathW error\n"); + HeapFree( GetProcessHeap(), 0, cab_file ); + return FALSE; + } + + /* Build the real path to where the file will be extracted */ + HeapFree( GetProcessHeap(), 0, cab_path ); + if (!(cab_path = strdupWtoA( TempPath ))) + { + HeapFree( GetProcessHeap(), 0, cab_file ); + return FALSE; + } + + /* Build the file list */ + src_fileW = strrchrW(src, '\\'); // Find where the filename starts. + if (src_fileW) ++src_fileW; + else src_fileW = src; + /* Convert to ANSI */ + if (!(src_file = strdupWtoA( src_fileW ))) + { + HeapFree( GetProcessHeap(), 0, cab_file ); + HeapFree( GetProcessHeap(), 0, cab_path ); + return FALSE; + } + + /* Prepare for the move operation */ + /* Build the full path to the extracted file, that will be renamed */ + if (!(src = HeapAlloc( GetProcessHeap(), 0, (strlenW(TempPath) + 1 + strlenW(src_fileW) + 1) * sizeof(WCHAR) ))) + { + HeapFree( GetProcessHeap(), 0, src_file ); + HeapFree( GetProcessHeap(), 0, cab_file ); + HeapFree( GetProcessHeap(), 0, cab_path ); + return FALSE; + } + concat_W( (WCHAR*)src, NULL, TempPath, src_fileW ); + + TRACE("pExtractFiles(cab_file = '%s' ; cab_path = '%s', src_file = '%s')\n", + debugstr_a(cab_file), debugstr_a(cab_path), debugstr_a(src_file)); + + /* Extract to temporary folder */ + pExtractFiles( cab_file, cab_path, 0, src_file, NULL, 0 ); + HeapFree( GetProcessHeap(), 0, src_file ); + HeapFree( GetProcessHeap(), 0, cab_file ); + HeapFree( GetProcessHeap(), 0, cab_path ); + + /* Move to destination, overwriting the original file if needed */ + TRACE("Renaming src = '%s' to dst = '%s')\n", debugstr_w(src), debugstr_w(dst)); + Success = MoveFileExW( src, dst , MOVEFILE_REPLACE_EXISTING | MOVEFILE_COPY_ALLOWED ); + HeapFree( GetProcessHeap(), 0, (WCHAR*)src ); + return Success; + } +#else pExtractFiles( cab_file, cab_path, 0, 0, 0, 0 ); HeapFree( GetProcessHeap(), 0, cab_file ); HeapFree( GetProcessHeap(), 0, cab_path ); return CopyFileW( src, dst, FALSE /*FIXME*/ ); +#endif }
6 years, 11 months
1
0
0
0
[reactos] 01/02: [SETUPAPI] Add __REACTOS__ guards around our own code; addendum to r68659 and r73442, CORE-10000 and CORE-12471.
by Hermès Bélusca-Maïto
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7c447a15a07da38c8f778…
commit 7c447a15a07da38c8f7780bf48e285455e1d6f96 Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org> AuthorDate: Sun Dec 31 02:28:50 2017 +0100 [SETUPAPI] Add __REACTOS__ guards around our own code; addendum to r68659 and r73442, CORE-10000 and CORE-12471. --- dll/win32/setupapi/queue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dll/win32/setupapi/queue.c b/dll/win32/setupapi/queue.c index 5f53d98a89..b556418389 100644 --- a/dll/win32/setupapi/queue.c +++ b/dll/win32/setupapi/queue.c @@ -987,15 +987,18 @@ static BOOL do_file_copyW( LPCWSTR source, LPCWSTR target, DWORD style, { BOOL rc = FALSE; BOOL docopy = TRUE; - WCHAR TempFile[MAX_PATH]; +#ifdef __REACTOS__ INT hSource, hTemp; OFSTRUCT OfStruct; WCHAR TempPath[MAX_PATH]; + WCHAR TempFile[MAX_PATH]; +#endif TRACE("copy %s to %s style 0x%x\n",debugstr_w(source),debugstr_w(target),style); +#ifdef __REACTOS__ /* Get a temp file name */ - if (!GetTempPathW(sizeof(TempPath) / sizeof(WCHAR), TempPath)) + if (!GetTempPathW(ARRAYSIZE(TempPath), TempPath)) { ERR("GetTempPathW error\n"); return FALSE; @@ -1033,6 +1036,7 @@ static BOOL do_file_copyW( LPCWSTR source, LPCWSTR target, DWORD style, LZCopy(hSource, hTemp); LZClose(hSource); LZClose(hTemp); +#endif /* before copy processing */ if (style & SP_COPY_REPLACEONLY)
6 years, 11 months
1
0
0
0
[reactos] 01/01: [RAPPS] Replaced "..." with "…" for resource unification
by Alexander Shaposhnikov
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4c29691f6abbcbe546bae…
commit 4c29691f6abbcbe546bae8339bf981ed6f0182d3 Author: Alexander Shaposhnikov <sanchaez(a)reactos.org> AuthorDate: Sat Dec 30 19:30:38 2017 +0200 [RAPPS] Replaced "..." with "…" for resource unification --- base/applications/rapps/lang/bg-BG.rc | 8 ++++---- base/applications/rapps/lang/cs-CZ.rc | 12 ++++++------ base/applications/rapps/lang/de-DE.rc | 10 +++++----- base/applications/rapps/lang/en-US.rc | 10 +++++----- base/applications/rapps/lang/es-ES.rc | 10 +++++----- base/applications/rapps/lang/fr-FR.rc | 10 +++++----- base/applications/rapps/lang/he-IL.rc | 10 +++++----- base/applications/rapps/lang/it-IT.rc | 16 ++++++++-------- base/applications/rapps/lang/ja-JP.rc | 10 +++++----- base/applications/rapps/lang/no-NO.rc | 10 +++++----- base/applications/rapps/lang/pl-PL.rc | 10 +++++----- base/applications/rapps/lang/pt-BR.rc | 10 +++++----- base/applications/rapps/lang/ru-RU.rc | 12 ++++++------ base/applications/rapps/lang/sk-SK.rc | 10 +++++----- base/applications/rapps/lang/sq-AL.rc | 10 +++++----- base/applications/rapps/lang/sv-SE.rc | 10 +++++----- base/applications/rapps/lang/tr-TR.rc | 10 +++++----- base/applications/rapps/lang/uk-UA.rc | 14 +++++++------- base/applications/rapps/lang/zh-CN.rc | 10 +++++----- base/applications/rapps/lang/zh-TW.rc | 10 +++++----- 20 files changed, 106 insertions(+), 106 deletions(-) diff --git a/base/applications/rapps/lang/bg-BG.rc b/base/applications/rapps/lang/bg-BG.rc index 661d9e01e5..4b5fe9acf8 100644 --- a/base/applications/rapps/lang/bg-BG.rc +++ b/base/applications/rapps/lang/bg-BG.rc @@ -87,7 +87,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Слагане на приложение" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "Слагане от оптичен носител", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Сваляне и слагане", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "Добре", IDOK, 86, 78, 60, 14 @@ -96,7 +96,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Сваляне %ls..." +CAPTION "Сваляне %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -208,7 +208,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Премахването на данните за приложението от регистъра е невъзможно!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -248,5 +248,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/cs-CZ.rc b/base/applications/rapps/lang/cs-CZ.rc index 056f8383c4..2ac4d2e26a 100644 --- a/base/applications/rapps/lang/cs-CZ.rc +++ b/base/applications/rapps/lang/cs-CZ.rc @@ -69,7 +69,7 @@ BEGIN GROUPBOX "Stahování", -1, 4, 65, 240, 51 LTEXT "Složka se staženými soubory:", -1, 16, 75, 100, 9 EDITTEXT IDC_DOWNLOAD_DIR_EDIT, 15, 86, 166, 12, WS_CHILD | WS_VISIBLE | WS_GROUP | ES_AUTOHSCROLL - PUSHBUTTON "&Procházet...", IDC_CHOOSE, 187, 85, 50, 14 + PUSHBUTTON "&Procházet…", IDC_CHOOSE, 187, 85, 50, 14 AUTOCHECKBOX "&Smazat instalátor programu po dokončení instalace", IDC_DEL_AFTER_INSTALL, 16, 100, 218, 12 GROUPBOX "Proxy", -1, 4, 116, 240, 76 CONTROL "Systémové nastavení proxy", IDC_PROXY_DEFAULT, "Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP, 15, 130, 210, 10 @@ -88,7 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Instalace programu" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Instalovat z média (CD nebo DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Stáhnout a instalovat", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -97,7 +97,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Stahování %ls..." +CAPTION "Stahování %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -188,7 +188,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Správce aplikací" - IDS_SEARCH_TEXT "Hledat..." + IDS_SEARCH_TEXT "Hledat…" IDS_INSTALL "Instalovat" IDS_UNINSTALL "Odinstalovat" IDS_MODIFY "Změnit" @@ -209,7 +209,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Nepodařilo se odstranit data programu z registru!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -249,5 +249,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/de-DE.rc b/base/applications/rapps/lang/de-DE.rc index 9a9463d931..d86a0513e2 100644 --- a/base/applications/rapps/lang/de-DE.rc +++ b/base/applications/rapps/lang/de-DE.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Programminstallation" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Installation von einem Datenträger (CD oder DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "Herunterla&den und installieren", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Download von %ls..." +CAPTION "Download von %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS-Anwendungsmanager" - IDS_SEARCH_TEXT "Suche..." + IDS_SEARCH_TEXT "Suche…" IDS_INSTALL "Installieren" IDS_UNINSTALL "Deinstallieren" IDS_MODIFY "Ändern" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Konnte die Daten nicht aus der Registry löschen!" IDS_UNABLE_TO_INSTALL "Paket konnte nicht installiert werden!" IDS_CERT_DOES_NOT_MATCH "Überprüfung des SSL-Zertifikats fehlgeschlagen." - IDS_INTEG_CHECK_TITLE "Integritätsprüfung..." + IDS_INTEG_CHECK_TITLE "Integritätsprüfung…" IDS_INTEG_CHECK_FAIL "Das Paket hat die Integritätsprüfung nicht bestanden. Mögliche Ursachen sind Übertragungsfehler, Datenbankfehler oder Manipulation durch einen Angreifer. Sie sollten die Software nicht ausführen." IDS_INTERRUPTED_DOWNLOAD "Übertragung unterbrochen. Prüfen Sie Ihre Internetverbindung!" IDS_UNABLE_TO_WRITE "Schreibfehler. Prüfen Sie die Kapazität des Datenträgers!" @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Anwendungsdatenbank" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Datenbank-Aktualisierung..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Datenbank-Aktualisierung…" END diff --git a/base/applications/rapps/lang/en-US.rc b/base/applications/rapps/lang/en-US.rc index a9e9937b32..048344532d 100644 --- a/base/applications/rapps/lang/en-US.rc +++ b/base/applications/rapps/lang/en-US.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Program installation" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220 STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_CAPTION | WS_VISIBLE -CAPTION "Downloading %ls..." +CAPTION "Downloading %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" - IDS_SEARCH_TEXT "Search..." + IDS_SEARCH_TEXT "Search…" IDS_INSTALL "Install" IDS_UNINSTALL "Uninstall" IDS_MODIFY "Modify" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/es-ES.rc b/base/applications/rapps/lang/es-ES.rc index 39f38a95a8..1467f24cef 100644 --- a/base/applications/rapps/lang/es-ES.rc +++ b/base/applications/rapps/lang/es-ES.rc @@ -86,7 +86,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Instalar programas" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Instalar desde un disco (CD o DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Descargar e instalar", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "Aceptar", IDOK, 86, 78, 60, 14 @@ -95,7 +95,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Descargando %ls..." +CAPTION "Descargando %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -186,7 +186,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Administrador de aplicaciones de ReactOS" - IDS_SEARCH_TEXT "Buscar..." + IDS_SEARCH_TEXT "Buscar…" IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" IDS_MODIFY "Modificar" @@ -207,7 +207,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "No se pudieron borrar del Registro los datos de instalación del programa." IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "Ha fallado la comprobación del certificado SSL." - IDS_INTEG_CHECK_TITLE "Verificando integridad del paquete..." + IDS_INTEG_CHECK_TITLE "Verificando integridad del paquete…" IDS_INTEG_CHECK_FAIL "El paquete no ha pasado la comprobación de integridad, puede haber sido alterado o estar corrupto. No se recomienda ejecutarlo." IDS_INTERRUPTED_DOWNLOAD "Se ha interrumpido la descarga por un error de red. Comprueba la conexión a Internet." IDS_UNABLE_TO_WRITE "No se ha podido escribir en el disco duro, es posible que no quede espacio libre." @@ -247,5 +247,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/fr-FR.rc b/base/applications/rapps/lang/fr-FR.rc index 54103a2190..c438ecc0e4 100644 --- a/base/applications/rapps/lang/fr-FR.rc +++ b/base/applications/rapps/lang/fr-FR.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Installation de programme" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Installer à partir d'un disque (CD ou DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Télécharger et installer", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "Accepter", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Téléchargement %ls..." +CAPTION "Téléchargement %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" - IDS_SEARCH_TEXT "Chercher..." + IDS_SEARCH_TEXT "Chercher…" IDS_INSTALL "Installer" IDS_UNINSTALL "Désinstaller" IDS_MODIFY "Modifier" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Impossible de supprimer du registre les données du programme !" IDS_UNABLE_TO_INSTALL "Impossible d'ouvrir l'installeur !" IDS_CERT_DOES_NOT_MATCH "La vérification du certificat SSL a échoué." - IDS_INTEG_CHECK_TITLE "Vérification de l'intégrité du paquet..." + IDS_INTEG_CHECK_TITLE "Vérification de l'intégrité du paquet…" IDS_INTEG_CHECK_FAIL "Le contrôle d'intégrité du paquet a échoué, il se peut qu'il ait été corrompu ou altéré au cours du téléchargement. L'exécution du programme n'est pas recommandée." IDS_INTERRUPTED_DOWNLOAD "Le téléchargement a été interrompu. Vérifiez votre connexion à Internet." IDS_UNABLE_TO_WRITE "Impossible d'écrire sur le disque. Votre disque pourrait être plein." @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Base de données d'applications" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Mise à jour de la base de données..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Mise à jour de la base de données…" END diff --git a/base/applications/rapps/lang/he-IL.rc b/base/applications/rapps/lang/he-IL.rc index 15bf32f29b..9df4d56199 100644 --- a/base/applications/rapps/lang/he-IL.rc +++ b/base/applications/rapps/lang/he-IL.rc @@ -85,7 +85,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "התקנת תכנית" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "התקן מתוך דיסק (CD או DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "הורד והתקן", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "אישור", IDOK, 86, 78, 60, 14 @@ -94,7 +94,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "הורדה %ls..." +CAPTION "הורדה %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -185,7 +185,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "מנהל היישומים של ReactOS" - IDS_SEARCH_TEXT "חפש..." + IDS_SEARCH_TEXT "חפש…" IDS_INSTALL "התקנה" IDS_UNINSTALL "הסרה" IDS_MODIFY "שינוי" @@ -206,7 +206,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -246,5 +246,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/it-IT.rc b/base/applications/rapps/lang/it-IT.rc index fb61605f79..0af2db3da7 100644 --- a/base/applications/rapps/lang/it-IT.rc +++ b/base/applications/rapps/lang/it-IT.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Installazione" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Installa da un disco (CD o DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Scarica e installa", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Scaricamento in corso %ls..." +CAPTION "Scaricamento in corso %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Gestione applicazioni" - IDS_SEARCH_TEXT "Cerca..." + IDS_SEARCH_TEXT "Cerca…" IDS_INSTALL "Installa" IDS_UNINSTALL "Rimuovi" IDS_MODIFY "Modifica" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Impossibile cancellare i dati dal registro!" IDS_UNABLE_TO_INSTALL "Impossibile aprire l'installer!" IDS_CERT_DOES_NOT_MATCH "Verifica del certificato SSL fallita." - IDS_INTEG_CHECK_TITLE "Verifica integrità pacchetto..." + IDS_INTEG_CHECK_TITLE "Verifica integrità pacchetto…" IDS_INTEG_CHECK_FAIL "Il pacchetto non ha superato il controllo di integrità, potrebbe essere stato danneggiato o manomesso durante lo scaricamento. L'esecuzione del software non è raccomandata." IDS_INTERRUPTED_DOWNLOAD "Lo scaricamento è stato interrotto. Verificare la connessione a Internet." IDS_UNABLE_TO_WRITE "Impossibile scrivere su disco: lo spazio libero potrebbe essere esaurito." @@ -218,9 +218,9 @@ BEGIN IDS_STATUS_NOTINSTALLED "Non installato" IDS_STATUS_DOWNLOADED "Scaricato" IDS_STATUS_UPDATE_AVAILABLE "Aggiornamento disponibile" - IDS_STATUS_DOWNLOADING "Scaricamento..." - IDS_STATUS_INSTALLING "Installazione..." - IDS_STATUS_WAITING "In attesa di installare..." + IDS_STATUS_DOWNLOADING "Scaricamento…" + IDS_STATUS_INSTALLING "Installazione…" + IDS_STATUS_WAITING "In attesa di installare…" IDS_STATUS_FINISHED "Finito" END @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applicazioni Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aggiornamento Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aggiornamento Database…" END diff --git a/base/applications/rapps/lang/ja-JP.rc b/base/applications/rapps/lang/ja-JP.rc index 6575e9dd4d..53bf912e22 100644 --- a/base/applications/rapps/lang/ja-JP.rc +++ b/base/applications/rapps/lang/ja-JP.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "プログラムのインストール" FONT 9, "MS UI Gothic" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "ディスクからインストール (CD や DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "ダウンロードしてインストール(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "ダウンロード %ls..." +CAPTION "ダウンロード %ls…" FONT 9, "MS UI Gothic" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS アプリケーション マネージャ" - IDS_SEARCH_TEXT "検索..." + IDS_SEARCH_TEXT "検索…" IDS_INSTALL "インストール" IDS_UNINSTALL "アンインストール" IDS_MODIFY "変更" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "レジストリからこのプログラムに関するデータを削除できません!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/no-NO.rc b/base/applications/rapps/lang/no-NO.rc index d12e1d2783..aea5c416cb 100644 --- a/base/applications/rapps/lang/no-NO.rc +++ b/base/applications/rapps/lang/no-NO.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Program installation" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Install from a disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Download and install", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Lastet ned %ls..." +CAPTION "Lastet ned %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -182,7 +182,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS programbehandler" - IDS_SEARCH_TEXT "Søk..." + IDS_SEARCH_TEXT "Søk…" IDS_INSTALL "Installere" IDS_UNINSTALL "Avinstallere" IDS_MODIFY "Endre" @@ -203,7 +203,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Unable to remove data on the program from the registry!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -243,5 +243,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/pl-PL.rc b/base/applications/rapps/lang/pl-PL.rc index 0007f476db..5f3214d998 100644 --- a/base/applications/rapps/lang/pl-PL.rc +++ b/base/applications/rapps/lang/pl-PL.rc @@ -91,7 +91,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Instalacja programu" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Zainstaluj z dysku (CD lub DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Pobierz i zainstaluj", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -100,7 +100,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Pobierz %ls..." +CAPTION "Pobierz %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -191,7 +191,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Menedżer aplikacji ReactOS" - IDS_SEARCH_TEXT "Szukaj..." + IDS_SEARCH_TEXT "Szukaj…" IDS_INSTALL "Instaluj" IDS_UNINSTALL "Odinstaluj" IDS_MODIFY "Modyfikuj" @@ -212,7 +212,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Nie można było usunąć wpisu z rejestru!" IDS_UNABLE_TO_INSTALL "Nie można uruchomić instalatora!" IDS_CERT_DOES_NOT_MATCH "Weryfikacja certyfikatu SSL nieudana." - IDS_INTEG_CHECK_TITLE "Weryfikowanie integralności pakietu..." + IDS_INTEG_CHECK_TITLE "Weryfikowanie integralności pakietu…" IDS_INTEG_CHECK_FAIL "Pakiet nie przeszedł kontroli integralności, mógł zostać uszkodzony lub naruszony podczas pobierania. Uruchamianie tego programu nie jest zalecane." IDS_INTERRUPTED_DOWNLOAD "Pobieranie zostało przerwane. Sprawdź połączenie z siecią" IDS_UNABLE_TO_WRITE "Nie można zapisać na dysku. Dysk może być pełny." @@ -252,5 +252,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Baza Programów" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizowanie bazy Programów..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Aktualizowanie bazy Programów…" END diff --git a/base/applications/rapps/lang/pt-BR.rc b/base/applications/rapps/lang/pt-BR.rc index 7388606c08..8f1fe5015e 100644 --- a/base/applications/rapps/lang/pt-BR.rc +++ b/base/applications/rapps/lang/pt-BR.rc @@ -85,7 +85,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Instalação do programa" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Instalar com uma mídia (CD ou DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Baixar e instalar", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -94,7 +94,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Download %ls..." +CAPTION "Download %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -185,7 +185,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Central de Aplicativos ReactOS" - IDS_SEARCH_TEXT "Procurar..." + IDS_SEARCH_TEXT "Procurar…" IDS_INSTALL "Instalar" IDS_UNINSTALL "Desinstalar" IDS_MODIFY "Modificar" @@ -206,7 +206,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Não foi possível remover as informações do programa do registro!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -246,5 +246,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/ru-RU.rc b/base/applications/rapps/lang/ru-RU.rc index 0f0d6f2eeb..97c6a328e6 100644 --- a/base/applications/rapps/lang/ru-RU.rc +++ b/base/applications/rapps/lang/ru-RU.rc @@ -83,7 +83,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Установка программы" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Установить с диска", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Скачать и установить", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -92,7 +92,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220 STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE -CAPTION "Загрузка %ls..." +CAPTION "Загрузка %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -183,7 +183,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Менеджер приложений ReactOS" - IDS_SEARCH_TEXT "Поиск..." + IDS_SEARCH_TEXT "Поиск…" IDS_INSTALL "Установить" IDS_UNINSTALL "Удалить" IDS_MODIFY "Изменить" @@ -204,7 +204,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Не удалось удалить данные о программе из реестра!" IDS_UNABLE_TO_INSTALL "Не удалось завершить установку!" IDS_CERT_DOES_NOT_MATCH "Ошибка проверки SSL сертификата." - IDS_INTEG_CHECK_TITLE "Проверка целостности приложения..." + IDS_INTEG_CHECK_TITLE "Проверка целостности приложения…" IDS_INTEG_CHECK_FAIL "Приложение не прошло проверку целостности, возможно оно было повреждено или подменено. Запуск приложения не рекомендуется." IDS_INTERRUPTED_DOWNLOAD "Загрузка была прервана. Проверьте подключение к сети Интернет." IDS_UNABLE_TO_WRITE "Не удалось записать данные на диск. Возможно, недостаточно свободного места на диске." @@ -219,7 +219,7 @@ BEGIN IDS_STATUS_DOWNLOADED "Загружено" IDS_STATUS_UPDATE_AVAILABLE "Есть обновления" IDS_STATUS_DOWNLOADING "Загружается…" - IDS_STATUS_INSTALLING "Установка..." + IDS_STATUS_INSTALLING "Установка…" IDS_STATUS_WAITING "Ожидание установки…" IDS_STATUS_FINISHED "Завершено" END @@ -244,5 +244,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "База данных приложений" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Обновление базы данных..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Обновление базы данных…" END diff --git a/base/applications/rapps/lang/sk-SK.rc b/base/applications/rapps/lang/sk-SK.rc index 150150e4b0..c65e4b6ec8 100644 --- a/base/applications/rapps/lang/sk-SK.rc +++ b/base/applications/rapps/lang/sk-SK.rc @@ -88,7 +88,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Inštalácia programu" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Inštalovať z disku (CD alebo DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Stiahnuť a inštalovať", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -97,7 +97,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Sťahujem %ls..." // Stiahnuť ??? +CAPTION "Sťahujem %ls…" // Stiahnuť ??? FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -188,7 +188,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Manažér aplikácií systému ReactOS" - IDS_SEARCH_TEXT "Hľadať..." + IDS_SEARCH_TEXT "Hľadať…" IDS_INSTALL "Inštalovať" IDS_UNINSTALL "Odinštalovať" IDS_MODIFY "Zmeniť" @@ -209,7 +209,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Nie je možné odstrániť z registrov údaje o programe!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -249,5 +249,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/sq-AL.rc b/base/applications/rapps/lang/sq-AL.rc index 80de1144bc..9d9f72c6a0 100644 --- a/base/applications/rapps/lang/sq-AL.rc +++ b/base/applications/rapps/lang/sq-AL.rc @@ -87,7 +87,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Instalimi i Programeve" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Instalo nga nje disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "Shkarko dhe instalo", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -96,7 +96,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Shkarko %ls..." +CAPTION "Shkarko %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -187,7 +187,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS Applications Manager" - IDS_SEARCH_TEXT "Kerko..." + IDS_SEARCH_TEXT "Kerko…" IDS_INSTALL "Instalo" IDS_UNINSTALL "Uninstall" IDS_MODIFY "Modifiko" @@ -208,7 +208,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "E pamundur te fshihen informacionet e programit nga regjistri!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -248,5 +248,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/sv-SE.rc b/base/applications/rapps/lang/sv-SE.rc index c321420a01..223e54c099 100644 --- a/base/applications/rapps/lang/sv-SE.rc +++ b/base/applications/rapps/lang/sv-SE.rc @@ -90,7 +90,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Programinstallation" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Installera från disk (CD or DVD)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Ladda ner och installera", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -99,7 +99,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "Ladda ner %ls..." +CAPTION "Ladda ner %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -190,7 +190,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS programhanterare" - IDS_SEARCH_TEXT "Sök..." + IDS_SEARCH_TEXT "Sök…" IDS_INSTALL "Installera" IDS_UNINSTALL "Avinstallera" IDS_MODIFY "Ändra" @@ -211,7 +211,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Det gick ej att ta bort programmets data från registret!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL certificate verification failed." - IDS_INTEG_CHECK_TITLE "Verifying package integrity..." + IDS_INTEG_CHECK_TITLE "Verifying package integrity…" IDS_INTEG_CHECK_FAIL "The package did not pass the integrity check, it may have been corrupted or tampered with during downloading. Running the software is not recommended." IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -251,5 +251,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/tr-TR.rc b/base/applications/rapps/lang/tr-TR.rc index a50b1cf8cf..34f0c693e5 100644 --- a/base/applications/rapps/lang/tr-TR.rc +++ b/base/applications/rapps/lang/tr-TR.rc @@ -6,7 +6,7 @@ IDR_MAINMENU MENU BEGIN POPUP "&Kütük" BEGIN - MENUITEM "&Ayarlar...", ID_SETTINGS + MENUITEM "&Ayarlar…", ID_SETTINGS MENUITEM SEPARATOR MENUITEM "&Çıkış", ID_EXIT END @@ -85,7 +85,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "İzlence Kurulumu" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Bir Diskten (CD'den veyâ DVD'den) Kur", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&İndir ve Kur", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "Tamam", IDOK, 86, 78, 60, 14 @@ -94,7 +94,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "İndiriliyor %ls..." +CAPTION "İndiriliyor %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -206,7 +206,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "İzlencenin girişi değer defterinden silinemiyor." IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL onay belgesi doğrulaması başarısız." - IDS_INTEG_CHECK_TITLE "Paket bütünlüğü doğrulanıyor..." + IDS_INTEG_CHECK_TITLE "Paket bütünlüğü doğrulanıyor…" IDS_INTEG_CHECK_FAIL "Paket bütünlük denetimini geçmedi, bozulmuş veyâ indirme esnâsında oynanmış olabilir. Yazılımı çalıştırmak önerilmez." IDS_INTERRUPTED_DOWNLOAD "İndirme kesildi. Umûmî Ağ bağlantınızı denetleyiniz." IDS_UNABLE_TO_WRITE "Diske yazılamıyor. Disk dolu olabilir." @@ -246,5 +246,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END diff --git a/base/applications/rapps/lang/uk-UA.rc b/base/applications/rapps/lang/uk-UA.rc index c9320c4f0e..4b6325da8f 100644 --- a/base/applications/rapps/lang/uk-UA.rc +++ b/base/applications/rapps/lang/uk-UA.rc @@ -91,7 +91,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "Встановлення програми" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "&Встановити з диску", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "&Завантажити та встановити", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "OK", IDOK, 86, 78, 60, 14 @@ -100,7 +100,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220 STYLE DS_SHELLFONT | DS_CENTER | WS_POPUPWINDOW | WS_SYSMENU | WS_VISIBLE -CAPTION "Завантаження %ls..." +CAPTION "Завантаження %ls…" FONT 8, "MS Shell Dlg" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -110,7 +110,7 @@ END IDD_ABOUT_DIALOG DIALOGEX 22, 16, 190, 66 STYLE DS_SHELLFONT | WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME -CAPTION "Про програму..." +CAPTION "Про програму…" FONT 8, "MS Shell Dlg" BEGIN LTEXT "Менеджер додатків ReactOS\nCopyright (C) 2009\nby Dmitry Chapyshev (dmitry(a)reactos.org)", IDC_STATIC, 48, 7, 130, 39 @@ -191,7 +191,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "Менеджер додатків ReactOS" - IDS_SEARCH_TEXT "Пошук..." + IDS_SEARCH_TEXT "Пошук…" IDS_INSTALL "Встановити" IDS_UNINSTALL "Видалити" IDS_MODIFY "Змінити" @@ -212,7 +212,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "Не вдалося видалити дані про програму з реєстру!" IDS_UNABLE_TO_INSTALL "Не вдалося завершити інсталювання!" IDS_CERT_DOES_NOT_MATCH "Помилка перевіки сертифікату SSL." - IDS_INTEG_CHECK_TITLE "Перевірка цілістності додатку..." + IDS_INTEG_CHECK_TITLE "Перевірка цілістності додатку…" IDS_INTEG_CHECK_FAIL "Додаток не пройшов перевірку цілістності, його молги пошкодити чи замінити. Запуск додатку не рекомендується." IDS_INTERRUPTED_DOWNLOAD "Завантаження перервано. Перевірте підключення до мережі Інтернет." IDS_UNABLE_TO_WRITE "Записк на диск неможливий. Можливо, на диску недостатньо містця." @@ -228,7 +228,7 @@ BEGIN IDS_STATUS_UPDATE_AVAILABLE "Є оновлення" IDS_STATUS_DOWNLOADING "Завантажується…" IDS_STATUS_INSTALLING "Встановлюється…" - IDS_STATUS_WAITING "Очікування завантаження..." + IDS_STATUS_WAITING "Очікування завантаження…" IDS_STATUS_FINISHED "Завершено" END @@ -252,5 +252,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Список програм" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Оновлення списку програм..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Оновлення списку програм…" END diff --git a/base/applications/rapps/lang/zh-CN.rc b/base/applications/rapps/lang/zh-CN.rc index 0c28551a21..a482d8ecb4 100644 --- a/base/applications/rapps/lang/zh-CN.rc +++ b/base/applications/rapps/lang/zh-CN.rc @@ -85,7 +85,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "程序安装" FONT 9, "宋体" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "从磁盘安装 (CD 或 DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "下载并安装(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "确定", IDOK, 86, 78, 60, 14 @@ -94,7 +94,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 220 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "正在下载 %ls..." +CAPTION "正在下载 %ls…" FONT 9, "宋体" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -185,7 +185,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS 程序管理器" - IDS_SEARCH_TEXT "搜索..." + IDS_SEARCH_TEXT "搜索…" IDS_INSTALL "安装" IDS_UNINSTALL "卸载" IDS_MODIFY "修改" @@ -206,7 +206,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "无法从注册表删除该程序的数据!" IDS_UNABLE_TO_INSTALL "无法打开安装程序!" IDS_CERT_DOES_NOT_MATCH "SSL 证书验证失败。" - IDS_INTEG_CHECK_TITLE "正在验证包完整性..." + IDS_INTEG_CHECK_TITLE "正在验证包完整性…" IDS_INTEG_CHECK_FAIL "这个包没有通过完整性验证,它可能在下载过程中损坏或被人为篡改了。不推荐运行这个程序。" IDS_INTERRUPTED_DOWNLOAD "下载中断。请检查网络连接。" IDS_UNABLE_TO_WRITE "无法写入磁盘。磁盘可能已满。" @@ -246,5 +246,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "应用程序数据库" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "正在更新数据库..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "正在更新数据库…" END diff --git a/base/applications/rapps/lang/zh-TW.rc b/base/applications/rapps/lang/zh-TW.rc index dd3b0c39e9..236eee3b90 100644 --- a/base/applications/rapps/lang/zh-TW.rc +++ b/base/applications/rapps/lang/zh-TW.rc @@ -85,7 +85,7 @@ STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYS CAPTION "安裝程式" FONT 9, "新細明體" BEGIN - LTEXT "...", IDC_INSTALL_TEXT, 4, 5, 209, 35 + LTEXT "…", IDC_INSTALL_TEXT, 4, 5, 209, 35 AUTORADIOBUTTON "從存儲裝置安裝 (CD 或 DVD)(&I)", IDC_CD_INSTALL, 10, 46, 197, 11, WS_GROUP AUTORADIOBUTTON "下載並安裝(&D)", IDC_DOWNLOAD_INSTALL, 10, 59, 197, 11, NOT WS_TABSTOP PUSHBUTTON "確定", IDOK, 86, 78, 60, 14 @@ -94,7 +94,7 @@ END IDD_DOWNLOAD_DIALOG DIALOGEX 0, 0, 220, 72 STYLE DS_SHELLFONT | DS_CENTER | WS_BORDER | WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE -CAPTION "正在下載 %ls..." +CAPTION "正在下載 %ls…" FONT 9, "新細明體" BEGIN CONTROL "Progress1", IDC_DOWNLOAD_PROGRESS, "msctls_progress32", WS_BORDER | PBS_SMOOTH, 10, 10, 200, 12 @@ -185,7 +185,7 @@ END STRINGTABLE BEGIN IDS_APPTITLE "ReactOS 程式管理器" - IDS_SEARCH_TEXT "搜索..." + IDS_SEARCH_TEXT "搜索…" IDS_INSTALL "安裝" IDS_UNINSTALL "解除安裝" IDS_MODIFY "修改" @@ -206,7 +206,7 @@ BEGIN IDS_UNABLE_TO_REMOVE "無法從登錄檔刪除該程式的資料!" IDS_UNABLE_TO_INSTALL "Unable to open installer!" IDS_CERT_DOES_NOT_MATCH "SSL 憑證驗證失敗。" - IDS_INTEG_CHECK_TITLE "驗證套裝軟體的完整性..." + IDS_INTEG_CHECK_TITLE "驗證套裝軟體的完整性…" IDS_INTEG_CHECK_FAIL "包沒有通過完整性檢查,它可能已損壞,或者在下載過程中篡改。建議您不要運行該軟體。" IDS_INTERRUPTED_DOWNLOAD "The download was interrupted. Check connection to Internet." IDS_UNABLE_TO_WRITE "Unable to write to disk. Disk may be at capacity." @@ -246,5 +246,5 @@ END STRINGTABLE BEGIN IDS_DL_DIALOG_DB_DISP "Applications Database" - IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database..." + IDS_DL_DIALOG_DB_DOWNLOAD_DISP "Updating Database…" END
6 years, 11 months
1
0
0
0
← Newer
1
2
3
4
5
...
36
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Results per page:
10
25
50
100
200