From 84d963d77a8bf2d3aa819a6be0f27c194476c769 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 13 Jun 2015 23:11:57 +0000 Subject: [PATCH] [USETUP] AssignDriveLetters: Fix the code that assigns drive letters to logical partitions. svn path=/trunk/; revision=68124 --- reactos/base/setup/usetup/partlist.c | 39 +++++++++++----------------- 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/reactos/base/setup/usetup/partlist.c b/reactos/base/setup/usetup/partlist.c index bfdc4ecac30..a8265353efc 100644 --- a/reactos/base/setup/usetup/partlist.c +++ b/reactos/base/setup/usetup/partlist.c @@ -166,46 +166,37 @@ AssignDriveLetters( } /* Assign drive letters to logical drives */ -#if 0 Entry1 = List->DiskListHead.Flink; while (Entry1 != &List->DiskListHead) { DiskEntry = CONTAINING_RECORD(Entry1, DISKENTRY, ListEntry); - Entry2 = DiskEntry->PartListHead.Flink; - if (Entry2 != &DiskEntry->PartListHead) + Entry2 = DiskEntry->LogicalPartListHead.Flink; + while (Entry2 != &DiskEntry->LogicalPartListHead) { - Entry2 = Entry2->Flink; - while (Entry2 != &DiskEntry->PartListHead) - { - PartEntry = CONTAINING_RECORD(Entry2, - PARTENTRY, - ListEntry); + PartEntry = CONTAINING_RECORD(Entry2, PARTENTRY, ListEntry); - PartEntry->DriveLetter = 0; + PartEntry->DriveLetter = 0; - if (PartEntry->Unpartitioned == FALSE && - !IsContainerPartition(PartEntry->PartInfo[0].PartitionType)) + if (PartEntry->IsPartitioned) + { + if (IsRecognizedPartition(PartEntry->PartitionType) || + (PartEntry->PartitionType == PARTITION_ENTRY_UNUSED && + PartEntry->SectorCount.QuadPart != 0LL)) { - if (IsRecognizedPartition(PartEntry->PartInfo[0].PartitionType) || - (PartEntry->PartInfo[0].PartitionType == PARTITION_ENTRY_UNUSED && - PartEntry->PartInfo[0].PartitionLength.QuadPart != 0LL)) + if (Letter <= 'Z') { - if (Letter <= 'Z') - { - PartEntry->DriveLetter = Letter; - Letter++; - } + PartEntry->DriveLetter = Letter; + Letter++; } } - - Entry2 = Entry2->Flink; } + + Entry2 = Entry2->Flink; } Entry1 = Entry1->Flink; } -#endif } @@ -1151,7 +1142,7 @@ AddDiskToList( InsertAscendingList(&List->DiskListHead, DiskEntry, DISKENTRY, ListEntry, DiskNumber); - /* Allocate a layout buffer for 4 partition entries first */ + /* Allocate a layout buffer with 4 partition entries first */ LayoutBufferSize = sizeof(DRIVE_LAYOUT_INFORMATION) + ((4 - ANYSIZE_ARRAY) * sizeof(PARTITION_INFORMATION)); DiskEntry->LayoutBuffer = RtlAllocateHeap(ProcessHeap, -- 2.17.1