From d112ca439132a0729876c4554b4abfa35b55e062 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sat, 11 Nov 2006 13:17:58 +0000 Subject: [PATCH] Make SystemConfigurationDataQueryRoutine() store information about as many drives as needed (previous version of the code did the same). Fixes "no partitions list" bug in usetup introduced in 24718. svn path=/trunk/; revision=24719 --- reactos/base/setup/usetup/partlist.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/reactos/base/setup/usetup/partlist.c b/reactos/base/setup/usetup/partlist.c index de4d0a0b687..477a20edf67 100644 --- a/reactos/base/setup/usetup/partlist.c +++ b/reactos/base/setup/usetup/partlist.c @@ -511,16 +511,16 @@ SystemConfigurationDataQueryRoutine(PWSTR ValueName, for (i = 0; i < FullResourceDescriptor->PartialResourceList.Count; i++) { if (FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].Type != CmResourceTypeDeviceSpecific || - FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize != sizeof(CM_INT13_DRIVE_PARAMETER)) + FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize % sizeof(CM_INT13_DRIVE_PARAMETER) != 0) continue; - *Int13Drives = RtlAllocateHeap(ProcessHeap, 0, sizeof(CM_INT13_DRIVE_PARAMETER)); + *Int13Drives = RtlAllocateHeap(ProcessHeap, 0, FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize); if (*Int13Drives == NULL) return STATUS_NO_MEMORY; memcpy( *Int13Drives, &FullResourceDescriptor->PartialResourceList.PartialDescriptors[i + 1], - sizeof(CM_INT13_DRIVE_PARAMETER)); + FullResourceDescriptor->PartialResourceList.PartialDescriptors[i].u.DeviceSpecificData.DataSize); return STATUS_SUCCESS; } return STATUS_UNSUCCESSFUL;