mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
Fixed partition read bug
svn path=/trunk/; revision=1313
This commit is contained in:
parent
c27ed38f21
commit
495a30cb8e
1 changed files with 8 additions and 9 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: xhaldrv.c,v 1.4 2000/08/22 14:10:59 ekohl Exp $
|
/* $Id: xhaldrv.c,v 1.5 2000/08/22 21:10:28 ekohl Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -11,9 +11,6 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO:
|
* TODO:
|
||||||
* - Check/fix 'StartingOffset' and 'PartitionLength' in
|
|
||||||
* xHalIoReadPartitionTable().
|
|
||||||
* - Fix 'ReturnRecognizesPartitions' in xHalIoReadPartitionTable().
|
|
||||||
* - Read disk signature in xHalIoReadPartitionTable().
|
* - Read disk signature in xHalIoReadPartitionTable().
|
||||||
* - Build correct system path from nt device name or arc name.
|
* - Build correct system path from nt device name or arc name.
|
||||||
* For example: \Device\Harddisk0\Partition1\reactos ==> C:\reactos
|
* For example: \Device\Harddisk0\Partition1\reactos ==> C:\reactos
|
||||||
|
@ -611,7 +608,7 @@ xHalIoReadPartitionTable (
|
||||||
return STATUS_INSUFFICIENT_RESOURCES;
|
return STATUS_INSUFFICIENT_RESOURCES;
|
||||||
}
|
}
|
||||||
|
|
||||||
LayoutBuffer = (PDRIVE_LAYOUT_INFORMATION)ExAllocatePool (PagedPool,
|
LayoutBuffer = (PDRIVE_LAYOUT_INFORMATION)ExAllocatePool (NonPagedPool,
|
||||||
0x1000);
|
0x1000);
|
||||||
if (LayoutBuffer == NULL)
|
if (LayoutBuffer == NULL)
|
||||||
{
|
{
|
||||||
|
@ -739,14 +736,16 @@ xHalIoReadPartitionTable (
|
||||||
|
|
||||||
DPRINT(" Offset: 0x%I64x", Offset.QuadPart);
|
DPRINT(" Offset: 0x%I64x", Offset.QuadPart);
|
||||||
|
|
||||||
if (IsExtendedPartition(PartitionTable->Partition[i].PartitionType))
|
if (IsUsablePartition(PartitionTable->Partition[i].PartitionType))
|
||||||
{
|
{
|
||||||
Offset.QuadPart = (ULONGLONG)Offset.QuadPart +
|
Offset.QuadPart = (ULONGLONG)Offset.QuadPart +
|
||||||
((ULONGLONG)PartitionTable->Partition[i].StartingBlock * (ULONGLONG)SectorSize);
|
(((ULONGLONG)PartitionTable->Partition[i].StartingBlock + (ULONGLONG)PartitionTable->Partition[i].SectorCount)* (ULONGLONG)SectorSize);
|
||||||
ExtendedFound = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINT(" Offset: 0x%I64x\n", Offset.QuadPart);
|
if (IsExtendedPartition(PartitionTable->Partition[i].PartitionType))
|
||||||
|
{
|
||||||
|
ExtendedFound = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
DPRINT(" %ld: nr: %d boot: %1x type: %x start: 0x%I64x count: 0x%I64x\n",
|
DPRINT(" %ld: nr: %d boot: %1x type: %x start: 0x%I64x count: 0x%I64x\n",
|
||||||
Count,
|
Count,
|
||||||
|
|
Loading…
Reference in a new issue