[FORMATTING] Fix formatting, no code change

svn path=/trunk/; revision=31202
This commit is contained in:
Hervé Poussineau 2007-12-13 17:23:03 +00:00
parent 44083c8d46
commit 7c69396b36

View file

@ -29,17 +29,17 @@ static pHalIoWritePartitionTable NtoskrnlIoWritePartitionTable;
static struct static struct
{ {
ULONG SectorStart; ULONG SectorStart;
ULONG SectorCount; ULONG SectorCount;
CHAR PartitionType; CHAR PartitionType;
} XboxPartitions[] = } XboxPartitions[] =
{ {
/* This is in the \Device\Harddisk0\Partition.. order used by the Xbox kernel */ /* This is in the \Device\Harddisk0\Partition.. order used by the Xbox kernel */
{ 0x0055F400, 0x0098f800, PARTITION_FAT32 }, /* Store, E: */ { 0x0055F400, 0x0098f800, PARTITION_FAT32 }, /* Store, E: */
{ 0x00465400, 0x000FA000, PARTITION_FAT_16 }, /* System, C: */ { 0x00465400, 0x000FA000, PARTITION_FAT_16 }, /* System, C: */
{ 0x00000400, 0x00177000, PARTITION_FAT_16 }, /* Cache1, X: */ { 0x00000400, 0x00177000, PARTITION_FAT_16 }, /* Cache1, X: */
{ 0x00177400, 0x00177000, PARTITION_FAT_16 }, /* Cache2, Y: */ { 0x00177400, 0x00177000, PARTITION_FAT_16 }, /* Cache2, Y: */
{ 0x002EE400, 0x00177000, PARTITION_FAT_16 } /* Cache3, Z: */ { 0x002EE400, 0x00177000, PARTITION_FAT_16 } /* Cache3, Z: */
}; };
#define XBOX_PARTITION_COUNT (sizeof(XboxPartitions) / sizeof(XboxPartitions[0])) #define XBOX_PARTITION_COUNT (sizeof(XboxPartitions) / sizeof(XboxPartitions[0]))
@ -51,88 +51,87 @@ static NTSTATUS
HalpXboxReadSector(IN PDEVICE_OBJECT DeviceObject, HalpXboxReadSector(IN PDEVICE_OBJECT DeviceObject,
IN ULONG SectorSize, IN ULONG SectorSize,
IN PLARGE_INTEGER SectorOffset, IN PLARGE_INTEGER SectorOffset,
IN PVOID Sector) OUT PVOID Sector)
{ {
IO_STATUS_BLOCK StatusBlock; IO_STATUS_BLOCK StatusBlock;
KEVENT Event; KEVENT Event;
PIRP Irp; PIRP Irp;
NTSTATUS Status; NTSTATUS Status;
DPRINT("HalpXboxReadSector(%p %lu 0x%08x%08x %p)\n", DPRINT("HalpXboxReadSector(%p %lu 0x%08x%08x %p)\n",
DeviceObject, SectorSize, SectorOffset->u.HighPart, SectorOffset->u.LowPart, Sector); DeviceObject, SectorSize, SectorOffset->u.HighPart, SectorOffset->u.LowPart, Sector);
ASSERT(DeviceObject); ASSERT(DeviceObject);
ASSERT(Sector); ASSERT(Sector);
KeInitializeEvent(&Event, KeInitializeEvent(&Event,
NotificationEvent, NotificationEvent,
FALSE); FALSE);
/* Read the sector */ /* Read the sector */
Irp = IoBuildSynchronousFsdRequest(IRP_MJ_READ, Irp = IoBuildSynchronousFsdRequest(IRP_MJ_READ,
DeviceObject, DeviceObject,
Sector, Sector,
SectorSize, SectorSize,
SectorOffset, SectorOffset,
&Event, &Event,
&StatusBlock); &StatusBlock);
Status = IoCallDriver(DeviceObject, Status = IoCallDriver(DeviceObject,
Irp); Irp);
if (Status == STATUS_PENDING) if (Status == STATUS_PENDING)
{ {
KeWaitForSingleObject(&Event, KeWaitForSingleObject(&Event,
Executive, Executive,
KernelMode, KernelMode,
FALSE, FALSE,
NULL); NULL);
Status = StatusBlock.Status; Status = StatusBlock.Status;
} }
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT("Reading sector failed (Status 0x%08lx)\n", DPRINT("Reading sector failed (Status 0x%08lx)\n", Status);
Status); return Status;
return Status;
} }
return Status; return Status;
} }
static NTSTATUS FASTCALL static NTSTATUS FASTCALL
HalpXboxDeviceHasXboxPartitioning(PDEVICE_OBJECT DeviceObject, HalpXboxDeviceHasXboxPartitioning(IN PDEVICE_OBJECT DeviceObject,
ULONG SectorSize, IN ULONG SectorSize,
BOOLEAN *HasXboxPartitioning) OUT BOOLEAN *HasXboxPartitioning)
{ {
PVOID SectorData; PVOID SectorData;
LARGE_INTEGER Offset; LARGE_INTEGER Offset;
NTSTATUS Status; NTSTATUS Status;
DPRINT("HalpXboxDeviceHasXboxPartitioning(%p %lu %p)\n", DPRINT("HalpXboxDeviceHasXboxPartitioning(%p %lu %p)\n",
DeviceObject, DeviceObject,
SectorSize, SectorSize,
HasXboxPartitioning); HasXboxPartitioning);
SectorData = ExAllocatePool(PagedPool, SectorSize); SectorData = ExAllocatePool(PagedPool, SectorSize);
if (NULL == SectorData) if (!SectorData)
{ {
return STATUS_NO_MEMORY; return STATUS_NO_MEMORY;
} }
Offset.QuadPart = XBOX_SIGNATURE_SECTOR * SectorSize; Offset.QuadPart = XBOX_SIGNATURE_SECTOR * SectorSize;
Status = HalpXboxReadSector(DeviceObject, SectorSize, &Offset, SectorData); Status = HalpXboxReadSector(DeviceObject, SectorSize, &Offset, SectorData);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
return Status; return Status;
} }
DPRINT("Signature 0x%02x 0x%02x 0x%02x 0x%02x\n", DPRINT("Signature 0x%02x 0x%02x 0x%02x 0x%02x\n",
*((UCHAR *) SectorData), *((UCHAR *) SectorData + 1), *((UCHAR *) SectorData + 2), *((UCHAR *) SectorData + 3)); *((UCHAR *) SectorData), *((UCHAR *) SectorData + 1), *((UCHAR *) SectorData + 2), *((UCHAR *) SectorData + 3));
*HasXboxPartitioning = (XBOX_SIGNATURE == *((ULONG *) SectorData)); *HasXboxPartitioning = (XBOX_SIGNATURE == *((ULONG *) SectorData));
ExFreePool(SectorData); ExFreePool(SectorData);
DPRINT("%s partitioning found\n", *HasXboxPartitioning ? "Xbox" : "MBR"); DPRINT("%s partitioning found\n", *HasXboxPartitioning ? "Xbox" : "MBR");
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
static VOID FASTCALL static VOID FASTCALL
@ -141,98 +140,98 @@ HalpXboxExamineMBR(IN PDEVICE_OBJECT DeviceObject,
IN ULONG MBRTypeIdentifier, IN ULONG MBRTypeIdentifier,
OUT PVOID *Buffer) OUT PVOID *Buffer)
{ {
BOOLEAN HasXboxPartitioning; BOOLEAN HasXboxPartitioning;
NTSTATUS Status; NTSTATUS Status;
DPRINT("HalpXboxExamineMBR(%p %lu %lx %p)\n", DPRINT("HalpXboxExamineMBR(%p %lu %lx %p)\n",
DeviceObject, DeviceObject,
SectorSize, SectorSize,
MBRTypeIdentifier, MBRTypeIdentifier,
Buffer); Buffer);
*Buffer = NULL; *Buffer = NULL;
Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning); Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
return; return;
} }
if (! HasXboxPartitioning) if (! HasXboxPartitioning)
{ {
DPRINT("Delegating to standard MBR code\n"); DPRINT("Delegating to standard MBR code\n");
NtoskrnlExamineMBR(DeviceObject, SectorSize, MBRTypeIdentifier, Buffer); NtoskrnlExamineMBR(DeviceObject, SectorSize, MBRTypeIdentifier, Buffer);
return; return;
} }
/* Buffer already set to NULL */ /* Buffer already set to NULL */
return; return;
} }
static NTSTATUS FASTCALL static NTSTATUS FASTCALL
HalpXboxIoReadPartitionTable(PDEVICE_OBJECT DeviceObject, HalpXboxIoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject,
ULONG SectorSize, IN ULONG SectorSize,
BOOLEAN ReturnRecognizedPartitions, IN BOOLEAN ReturnRecognizedPartitions,
PDRIVE_LAYOUT_INFORMATION *PartitionBuffer) OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
{ {
BOOLEAN HasXboxPartitioning; BOOLEAN HasXboxPartitioning;
NTSTATUS Status; NTSTATUS Status;
unsigned Part; ULONG Part;
PPARTITION_INFORMATION PartInfo; PPARTITION_INFORMATION PartInfo;
DPRINT("HalpXboxIoReadPartitionTable(%p %lu %x %p)\n", DPRINT("HalpXboxIoReadPartitionTable(%p %lu %x %p)\n",
DeviceObject, DeviceObject,
SectorSize, SectorSize,
ReturnRecognizedPartitions, ReturnRecognizedPartitions,
PartitionBuffer); PartitionBuffer);
Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning); Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
return Status; return Status;
} }
if (! HasXboxPartitioning) if (! HasXboxPartitioning)
{ {
DPRINT("Delegating to standard MBR code\n"); DPRINT("Delegating to standard MBR code\n");
return NtoskrnlIoReadPartitionTable(DeviceObject, SectorSize, return NtoskrnlIoReadPartitionTable(DeviceObject, SectorSize,
ReturnRecognizedPartitions, PartitionBuffer); ReturnRecognizedPartitions, PartitionBuffer);
} }
*PartitionBuffer = (PDRIVE_LAYOUT_INFORMATION) *PartitionBuffer = (PDRIVE_LAYOUT_INFORMATION)
ExAllocatePool(PagedPool, ExAllocatePool(PagedPool,
sizeof(DRIVE_LAYOUT_INFORMATION) + sizeof(DRIVE_LAYOUT_INFORMATION) +
XBOX_PARTITION_COUNT * sizeof(PARTITION_INFORMATION)); XBOX_PARTITION_COUNT * sizeof(PARTITION_INFORMATION));
if (NULL == *PartitionBuffer) if (NULL == *PartitionBuffer)
{ {
return STATUS_NO_MEMORY; return STATUS_NO_MEMORY;
} }
(*PartitionBuffer)->PartitionCount = XBOX_PARTITION_COUNT; (*PartitionBuffer)->PartitionCount = XBOX_PARTITION_COUNT;
(*PartitionBuffer)->Signature = PARTITION_SIGNATURE; (*PartitionBuffer)->Signature = PARTITION_SIGNATURE;
for (Part = 0; Part < XBOX_PARTITION_COUNT; Part++) for (Part = 0; Part < XBOX_PARTITION_COUNT; Part++)
{ {
PartInfo = (*PartitionBuffer)->PartitionEntry + Part; PartInfo = (*PartitionBuffer)->PartitionEntry + Part;
PartInfo->StartingOffset.QuadPart = (ULONGLONG) XboxPartitions[Part].SectorStart * PartInfo->StartingOffset.QuadPart = (ULONGLONG) XboxPartitions[Part].SectorStart *
(ULONGLONG) SectorSize; (ULONGLONG) SectorSize;
PartInfo->PartitionLength.QuadPart = (ULONGLONG) XboxPartitions[Part].SectorCount * PartInfo->PartitionLength.QuadPart = (ULONGLONG) XboxPartitions[Part].SectorCount *
(ULONGLONG) SectorSize; (ULONGLONG) SectorSize;
PartInfo->HiddenSectors = 0; PartInfo->HiddenSectors = 0;
PartInfo->PartitionNumber = Part + 1; PartInfo->PartitionNumber = Part + 1;
PartInfo->PartitionType = XboxPartitions[Part].PartitionType; PartInfo->PartitionType = XboxPartitions[Part].PartitionType;
PartInfo->BootIndicator = FALSE; PartInfo->BootIndicator = FALSE;
PartInfo->RecognizedPartition = TRUE; PartInfo->RecognizedPartition = TRUE;
PartInfo->RewritePartition = FALSE; PartInfo->RewritePartition = FALSE;
DPRINT(" %ld: nr: %d boot: %1x type: %x start: 0x%I64x count: 0x%I64x rec: %d\n", DPRINT(" %ld: nr: %d boot: %1x type: %x start: 0x%I64x count: 0x%I64x rec: %d\n",
Part, Part,
PartInfo->PartitionNumber, PartInfo->PartitionNumber,
PartInfo->BootIndicator, PartInfo->BootIndicator,
PartInfo->PartitionType, PartInfo->PartitionType,
PartInfo->StartingOffset.QuadPart, PartInfo->StartingOffset.QuadPart,
PartInfo->PartitionLength.QuadPart, PartInfo->PartitionLength.QuadPart,
PartInfo->RecognizedPartition); PartInfo->RecognizedPartition);
} }
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
static NTSTATUS FASTCALL static NTSTATUS FASTCALL
@ -241,31 +240,31 @@ HalpXboxIoSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject,
IN ULONG PartitionNumber, IN ULONG PartitionNumber,
IN ULONG PartitionType) IN ULONG PartitionType)
{ {
BOOLEAN HasXboxPartitioning; BOOLEAN HasXboxPartitioning;
NTSTATUS Status; NTSTATUS Status;
DPRINT("HalpXboxIoSetPartitionInformation(%p %lu %lu %lu)\n", DPRINT("HalpXboxIoSetPartitionInformation(%p %lu %lu %lu)\n",
DeviceObject, DeviceObject,
SectorSize, SectorSize,
PartitionNumber, PartitionNumber,
PartitionType); PartitionType);
Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning); Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
return Status; return Status;
} }
if (! HasXboxPartitioning) if (!HasXboxPartitioning)
{ {
DPRINT("Delegating to standard MBR code\n"); DPRINT("Delegating to standard MBR code\n");
return NtoskrnlIoSetPartitionInformation(DeviceObject, SectorSize, return NtoskrnlIoSetPartitionInformation(DeviceObject, SectorSize,
PartitionNumber, PartitionType); PartitionNumber, PartitionType);
} }
/* Can't change the partitioning */ /* Can't change the partitioning */
DPRINT1("Xbox partitions are fixed, can't change them\n"); DPRINT1("Xbox partitions are fixed, can't change them\n");
return STATUS_ACCESS_DENIED; return STATUS_ACCESS_DENIED;
} }
static NTSTATUS FASTCALL static NTSTATUS FASTCALL
@ -275,33 +274,33 @@ HalpXboxIoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject,
IN ULONG NumberOfHeads, IN ULONG NumberOfHeads,
IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer) IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
{ {
BOOLEAN HasXboxPartitioning; BOOLEAN HasXboxPartitioning;
NTSTATUS Status; NTSTATUS Status;
DPRINT("HalpXboxIoWritePartitionTable(%p %lu %lu %lu %p)\n", DPRINT("HalpXboxIoWritePartitionTable(%p %lu %lu %lu %p)\n",
DeviceObject, DeviceObject,
SectorSize, SectorSize,
SectorsPerTrack, SectorsPerTrack,
NumberOfHeads, NumberOfHeads,
PartitionBuffer); PartitionBuffer);
Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning); Status = HalpXboxDeviceHasXboxPartitioning(DeviceObject, SectorSize, &HasXboxPartitioning);
if (! NT_SUCCESS(Status)) if (! NT_SUCCESS(Status))
{ {
return Status; return Status;
} }
if (! HasXboxPartitioning) if (!HasXboxPartitioning)
{ {
DPRINT("Delegating to standard MBR code\n"); DPRINT("Delegating to standard MBR code\n");
return NtoskrnlIoWritePartitionTable(DeviceObject, SectorSize, return NtoskrnlIoWritePartitionTable(DeviceObject, SectorSize,
SectorsPerTrack, NumberOfHeads, SectorsPerTrack, NumberOfHeads,
PartitionBuffer); PartitionBuffer);
} }
/* Can't change the partitioning */ /* Can't change the partitioning */
DPRINT1("Xbox partitions are fixed, can't change them\n"); DPRINT1("Xbox partitions are fixed, can't change them\n");
return STATUS_ACCESS_DENIED; return STATUS_ACCESS_DENIED;
} }
#define HalExamineMBR HALDISPATCH->HalExamineMBR #define HalExamineMBR HALDISPATCH->HalExamineMBR
@ -309,14 +308,14 @@ HalpXboxIoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject,
void void
HalpXboxInitPartIo(void) HalpXboxInitPartIo(void)
{ {
NtoskrnlExamineMBR = HalExamineMBR; NtoskrnlExamineMBR = HalExamineMBR;
HalExamineMBR = HalpXboxExamineMBR; HalExamineMBR = HalpXboxExamineMBR;
NtoskrnlIoReadPartitionTable = HalIoReadPartitionTable; NtoskrnlIoReadPartitionTable = HalIoReadPartitionTable;
HalIoReadPartitionTable = HalpXboxIoReadPartitionTable; HalIoReadPartitionTable = HalpXboxIoReadPartitionTable;
NtoskrnlIoSetPartitionInformation = HalIoSetPartitionInformation; NtoskrnlIoSetPartitionInformation = HalIoSetPartitionInformation;
HalIoSetPartitionInformation = HalpXboxIoSetPartitionInformation; HalIoSetPartitionInformation = HalpXboxIoSetPartitionInformation;
NtoskrnlIoWritePartitionTable = HalIoWritePartitionTable; NtoskrnlIoWritePartitionTable = HalIoWritePartitionTable;
HalIoWritePartitionTable = HalpXboxIoWritePartitionTable; HalIoWritePartitionTable = HalpXboxIoWritePartitionTable;
} }
/* EOF */ /* EOF */