mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
Use Uint32x32To64() function instead of ULONG * ULONG. Fixes partition length truncation.
See issue #1871 for more details. svn path=/trunk/; revision=24769
This commit is contained in:
parent
cb8322a4e3
commit
4a33b4c040
1 changed files with 7 additions and 4 deletions
|
@ -1583,7 +1583,8 @@ IoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
|
|||
/* Get the starting offset */
|
||||
PartitionInfo->StartingOffset.QuadPart =
|
||||
StartOffset +
|
||||
GET_STARTING_SECTOR(PartitionDescriptor) * SectorSize;
|
||||
UInt32x32To64(GET_STARTING_SECTOR(PartitionDescriptor),
|
||||
SectorSize);
|
||||
|
||||
/* Calculate the number of hidden sectors */
|
||||
PartitionInfo->HiddenSectors = (PartitionInfo->
|
||||
|
@ -1593,7 +1594,8 @@ IoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
|
|||
|
||||
/* Get the partition length */
|
||||
PartitionInfo->PartitionLength.QuadPart =
|
||||
GET_PARTITION_LENGTH(PartitionDescriptor) * SectorSize;
|
||||
UInt32x32To64(GET_PARTITION_LENGTH(PartitionDescriptor),
|
||||
SectorSize);
|
||||
|
||||
/* FIXME: REACTOS HACK */
|
||||
PartitionInfo->PartitionNumber = i + 1;
|
||||
|
@ -1637,8 +1639,9 @@ IoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
|
|||
{
|
||||
/* Get its offset */
|
||||
Offset.QuadPart = VolumeOffset.QuadPart +
|
||||
GET_STARTING_SECTOR(PartitionDescriptor) *
|
||||
SectorSize;
|
||||
UInt32x32To64(
|
||||
GET_STARTING_SECTOR(PartitionDescriptor),
|
||||
SectorSize);
|
||||
|
||||
/* If this is a primary partition, this is the volume offset */
|
||||
if (IsPrimary) VolumeOffset = Offset;
|
||||
|
|
Loading…
Reference in a new issue