ReactOS  0.4.15-dev-994-ga9f6032
part_xbox.c File Reference
#include "halxbox.h"
#include <internal/tag.h>
#include <debug.h>
Include dependency graph for part_xbox.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define XBOX_SIGNATURE_SECTOR   3
 
#define XBOX_SIGNATURE   ('B' | ('R' << 8) | ('F' << 16) | ('R' << 24))
 
#define PARTITION_SIGNATURE   0xaa55
 
#define XBOX_PARTITION_COUNT   (sizeof(XboxPartitions) / sizeof(XboxPartitions[0]))
 
#define HalExamineMBR   HALDISPATCH->HalExamineMBR
 
#define HalIoReadPartitionTable   HALDISPATCH->HalIoReadPartitionTable
 
#define HalIoSetPartitionInformation   HALDISPATCH->HalIoSetPartitionInformation
 
#define HalIoWritePartitionTable   HALDISPATCH->HalIoWritePartitionTable
 

Functions

static NTSTATUS HalpXboxReadSector (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN PLARGE_INTEGER SectorOffset, OUT PVOID Sector)
 
static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, OUT BOOLEAN *HasXboxPartitioning)
 
static VOID FASTCALL HalpXboxExamineMBR (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG MBRTypeIdentifier, OUT PVOID *Buffer)
 
static NTSTATUS FASTCALL HalpXboxIoReadPartitionTable (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
 
static NTSTATUS FASTCALL HalpXboxIoSetPartitionInformation (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType)
 
static NTSTATUS FASTCALL HalpXboxIoWritePartitionTable (IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
 
void HalpXboxInitPartIo (void)
 

Variables

static pHalExamineMBR NtoskrnlExamineMBR
 
static pHalIoReadPartitionTable NtoskrnlIoReadPartitionTable
 
static pHalIoSetPartitionInformation NtoskrnlIoSetPartitionInformation
 
static pHalIoWritePartitionTable NtoskrnlIoWritePartitionTable
 
struct {
   ULONG   SectorStart
 
   ULONG   SectorCount
 
   CHAR   PartitionType
 
XboxPartitions []
 

Macro Definition Documentation

◆ HalExamineMBR

#define HalExamineMBR   HALDISPATCH->HalExamineMBR

Definition at line 325 of file part_xbox.c.

◆ HalIoReadPartitionTable

#define HalIoReadPartitionTable   HALDISPATCH->HalIoReadPartitionTable

Definition at line 326 of file part_xbox.c.

◆ HalIoSetPartitionInformation

#define HalIoSetPartitionInformation   HALDISPATCH->HalIoSetPartitionInformation

Definition at line 327 of file part_xbox.c.

◆ HalIoWritePartitionTable

#define HalIoWritePartitionTable   HALDISPATCH->HalIoWritePartitionTable

Definition at line 328 of file part_xbox.c.

◆ NDEBUG

#define NDEBUG

Definition at line 14 of file part_xbox.c.

◆ PARTITION_SIGNATURE

#define PARTITION_SIGNATURE   0xaa55

Definition at line 19 of file part_xbox.c.

◆ XBOX_PARTITION_COUNT

#define XBOX_PARTITION_COUNT   (sizeof(XboxPartitions) / sizeof(XboxPartitions[0]))

Definition at line 43 of file part_xbox.c.

◆ XBOX_SIGNATURE

#define XBOX_SIGNATURE   ('B' | ('R' << 8) | ('F' << 16) | ('R' << 24))

Definition at line 18 of file part_xbox.c.

◆ XBOX_SIGNATURE_SECTOR

#define XBOX_SIGNATURE_SECTOR   3

Definition at line 17 of file part_xbox.c.

Function Documentation

◆ HalpXboxDeviceHasXboxPartitioning()

static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
OUT BOOLEAN HasXboxPartitioning 
)
static

Definition at line 101 of file part_xbox.c.

104 {
105  PVOID SectorData;
108  BOOLEAN HasMBRPartitioning;
109 
110  DPRINT("HalpXboxDeviceHasXboxPartitioning(%p %lu %p)\n",
111  DeviceObject,
112  SectorSize,
113  HasXboxPartitioning);
114 
116  if (!SectorData)
117  {
118  return STATUS_NO_MEMORY;
119  }
120 
121  Offset.QuadPart = 0;
123  if (!NT_SUCCESS(Status))
124  {
125  goto Cleanup;
126  }
127 
128  HasMBRPartitioning = (*((USHORT *)SectorData + (SectorSize / sizeof(USHORT)) - 1) == PARTITION_SIGNATURE);
129  if (HasMBRPartitioning)
130  {
131  *HasXboxPartitioning = FALSE;
132  goto Cleanup;
133  }
134 
137  if (!NT_SUCCESS(Status))
138  {
139  goto Cleanup;
140  }
141 
142  DPRINT("Signature 0x%02x 0x%02x 0x%02x 0x%02x\n",
143  *((UCHAR *) SectorData), *((UCHAR *) SectorData + 1), *((UCHAR *) SectorData + 2), *((UCHAR *) SectorData + 3));
144  *HasXboxPartitioning = (XBOX_SIGNATURE == *((ULONG *) SectorData));
145 Cleanup:
146  ExFreePoolWithTag(SectorData, TAG_HAL_XBOX);
147  if (NT_SUCCESS(Status))
148  {
149  DPRINT("%s partitioning found\n", *HasXboxPartitioning ? "Xbox" : "MBR");
150  }
151 
152  return Status;
153 }
#define PARTITION_SIGNATURE
Definition: part_xbox.c:19
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
#define FALSE
Definition: types.h:117
static NTSTATUS HalpXboxReadSector(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN PLARGE_INTEGER SectorOffset, OUT PVOID Sector)
Definition: part_xbox.c:49
unsigned char BOOLEAN
void DPRINT(...)
Definition: polytest.cpp:61
#define XBOX_SIGNATURE_SECTOR
Definition: part_xbox.c:17
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
unsigned char UCHAR
Definition: xmlstorage.h:181
Status
Definition: gdiplustypes.h:24
static const WCHAR Cleanup[]
Definition: register.c:80
#define TAG_HAL_XBOX
Definition: halxbox.h:20
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
unsigned short USHORT
Definition: pedump.c:61
#define STATUS_NO_MEMORY
Definition: ntstatus.h:260
unsigned int ULONG
Definition: retypes.h:1
#define XBOX_SIGNATURE
Definition: part_xbox.c:18
#define ExFreePoolWithTag(_P, _T)
Definition: module.h:1099
_In_ ULONG SectorSize
Definition: halfuncs.h:291

Referenced by HalpXboxExamineMBR(), HalpXboxIoReadPartitionTable(), HalpXboxIoSetPartitionInformation(), and HalpXboxIoWritePartitionTable().

◆ HalpXboxExamineMBR()

static VOID FASTCALL HalpXboxExamineMBR ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
IN ULONG  MBRTypeIdentifier,
OUT PVOID Buffer 
)
static

Definition at line 156 of file part_xbox.c.

160 {
161  BOOLEAN HasXboxPartitioning;
163 
164  DPRINT("HalpXboxExamineMBR(%p %lu %lx %p)\n",
165  DeviceObject,
166  SectorSize,
168  Buffer);
169 
170  *Buffer = NULL;
171 
173  if (!NT_SUCCESS(Status))
174  {
175  return;
176  }
177 
178  if (!HasXboxPartitioning)
179  {
180  DPRINT("Delegating to standard MBR code\n");
182  return;
183  }
184 
185  /* Buffer already set to NULL */
186  return;
187 }
LONG NTSTATUS
Definition: precomp.h:26
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
Definition: bufpool.h:45
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
static pHalExamineMBR NtoskrnlExamineMBR
Definition: part_xbox.c:23
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
_In_ ULONG _In_ ULONG MBRTypeIdentifier
Definition: halfuncs.h:291
static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, OUT BOOLEAN *HasXboxPartitioning)
Definition: part_xbox.c:101
_In_ ULONG SectorSize
Definition: halfuncs.h:291

Referenced by HalpXboxInitPartIo().

◆ HalpXboxInitPartIo()

void HalpXboxInitPartIo ( void  )

Definition at line 331 of file part_xbox.c.

332 {
341 }
static VOID FASTCALL HalpXboxExamineMBR(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG MBRTypeIdentifier, OUT PVOID *Buffer)
Definition: part_xbox.c:156
static NTSTATUS FASTCALL HalpXboxIoWritePartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG SectorsPerTrack, IN ULONG NumberOfHeads, IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer)
Definition: part_xbox.c:290
static pHalIoSetPartitionInformation NtoskrnlIoSetPartitionInformation
Definition: part_xbox.c:25
#define HalIoReadPartitionTable
Definition: part_xbox.c:326
#define HalIoSetPartitionInformation
Definition: part_xbox.c:327
#define HalIoWritePartitionTable
Definition: part_xbox.c:328
#define HalExamineMBR
Definition: part_xbox.c:325
static pHalExamineMBR NtoskrnlExamineMBR
Definition: part_xbox.c:23
static NTSTATUS FASTCALL HalpXboxIoSetPartitionInformation(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN ULONG PartitionNumber, IN ULONG PartitionType)
Definition: part_xbox.c:257
static pHalIoWritePartitionTable NtoskrnlIoWritePartitionTable
Definition: part_xbox.c:26
static NTSTATUS FASTCALL HalpXboxIoReadPartitionTable(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, IN BOOLEAN ReturnRecognizedPartitions, OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer)
Definition: part_xbox.c:190
static pHalIoReadPartitionTable NtoskrnlIoReadPartitionTable
Definition: part_xbox.c:24

Referenced by HalpInitPhase0().

◆ HalpXboxIoReadPartitionTable()

static NTSTATUS FASTCALL HalpXboxIoReadPartitionTable ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
IN BOOLEAN  ReturnRecognizedPartitions,
OUT PDRIVE_LAYOUT_INFORMATION PartitionBuffer 
)
static

Definition at line 190 of file part_xbox.c.

194 {
195  BOOLEAN HasXboxPartitioning;
197  ULONG Part;
198  PPARTITION_INFORMATION PartInfo;
199 
200  DPRINT("HalpXboxIoReadPartitionTable(%p %lu %x %p)\n",
201  DeviceObject,
202  SectorSize,
205 
207  if (!NT_SUCCESS(Status))
208  {
209  return Status;
210  }
211 
212  if (!HasXboxPartitioning)
213  {
214  DPRINT("Delegating to standard MBR code\n");
217  }
218 
220  PagedPool,
221  sizeof(DRIVE_LAYOUT_INFORMATION) +
224  if (*PartitionBuffer == NULL)
225  {
226  return STATUS_NO_MEMORY;
227  }
228  (*PartitionBuffer)->PartitionCount = XBOX_PARTITION_COUNT;
229  (*PartitionBuffer)->Signature = PARTITION_SIGNATURE;
230  for (Part = 0; Part < XBOX_PARTITION_COUNT; Part++)
231  {
232  PartInfo = (*PartitionBuffer)->PartitionEntry + Part;
237  PartInfo->HiddenSectors = 0;
238  PartInfo->PartitionNumber = Part + 1;
239  PartInfo->PartitionType = XboxPartitions[Part].PartitionType;
240  PartInfo->BootIndicator = FALSE;
241  PartInfo->RecognizedPartition = TRUE;
242  PartInfo->RewritePartition = FALSE;
243  DPRINT(" %ld: nr: %d boot: %1x type: %x start: 0x%I64x count: 0x%I64x rec: %d\n",
244  Part,
245  PartInfo->PartitionNumber,
246  PartInfo->BootIndicator,
247  PartInfo->PartitionType,
248  PartInfo->StartingOffset.QuadPart,
249  PartInfo->PartitionLength.QuadPart,
250  PartInfo->RecognizedPartition);
251  }
252 
253  return STATUS_SUCCESS;
254 }
#define TAG_FILE_SYSTEM
Definition: tag.h:50
LARGE_INTEGER PartitionLength
Definition: ntdddisk.h:469
ULONG SectorStart
Definition: part_xbox.c:30
#define TRUE
Definition: types.h:120
#define PARTITION_SIGNATURE
Definition: part_xbox.c:19
LONG NTSTATUS
Definition: precomp.h:26
#define XBOX_PARTITION_COUNT
Definition: part_xbox.c:43
struct _PARTITION_INFORMATION PARTITION_INFORMATION
#define FALSE
Definition: types.h:117
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
Definition: iofuncs.h:2048
unsigned char BOOLEAN
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
static struct @1519 XboxPartitions[]
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
LARGE_INTEGER StartingOffset
Definition: ntdddisk.h:468
uint64_t ULONGLONG
Definition: typedefs.h:67
#define ExAllocatePoolWithTag(hernya, size, tag)
Definition: env_spec_w32.h:350
BOOLEAN RewritePartition
Definition: ntdddisk.h:475
Status
Definition: gdiplustypes.h:24
_In_ ULONG _In_ BOOLEAN ReturnRecognizedPartitions
Definition: iofuncs.h:2046
ULONG SectorCount
Definition: part_xbox.c:31
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
struct _DRIVE_LAYOUT_INFORMATION * PDRIVE_LAYOUT_INFORMATION
#define STATUS_NO_MEMORY
Definition: ntstatus.h:260
static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, OUT BOOLEAN *HasXboxPartitioning)
Definition: part_xbox.c:101
unsigned int ULONG
Definition: retypes.h:1
BOOLEAN RecognizedPartition
Definition: ntdddisk.h:474
_In_ ULONG SectorSize
Definition: halfuncs.h:291
return STATUS_SUCCESS
Definition: btrfs.c:3014
static pHalIoReadPartitionTable NtoskrnlIoReadPartitionTable
Definition: part_xbox.c:24
LONGLONG QuadPart
Definition: typedefs.h:114

Referenced by HalpXboxInitPartIo().

◆ HalpXboxIoSetPartitionInformation()

static NTSTATUS FASTCALL HalpXboxIoSetPartitionInformation ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
IN ULONG  PartitionNumber,
IN ULONG  PartitionType 
)
static

Definition at line 257 of file part_xbox.c.

261 {
262  BOOLEAN HasXboxPartitioning;
264 
265  DPRINT("HalpXboxIoSetPartitionInformation(%p %lu %lu %lu)\n",
266  DeviceObject,
267  SectorSize,
269  PartitionType);
270 
272  if (!NT_SUCCESS(Status))
273  {
274  return Status;
275  }
276 
277  if (!HasXboxPartitioning)
278  {
279  DPRINT("Delegating to standard MBR code\n");
282  }
283 
284  /* Can't change the partitioning */
285  DPRINT1("Xbox partitions are fixed, can't change them\n");
286  return STATUS_ACCESS_DENIED;
287 }
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONG _In_ ULONG PartitionNumber
Definition: iofuncs.h:2056
static pHalIoSetPartitionInformation NtoskrnlIoSetPartitionInformation
Definition: part_xbox.c:25
unsigned char BOOLEAN
void DPRINT(...)
Definition: polytest.cpp:61
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_ACCESS_DENIED
Definition: udferr_usr.h:145
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, OUT BOOLEAN *HasXboxPartitioning)
Definition: part_xbox.c:101
#define DPRINT1
Definition: precomp.h:8
CHAR PartitionType
Definition: part_xbox.c:32
_In_ ULONG SectorSize
Definition: halfuncs.h:291

Referenced by HalpXboxInitPartIo().

◆ HalpXboxIoWritePartitionTable()

static NTSTATUS FASTCALL HalpXboxIoWritePartitionTable ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
IN ULONG  SectorsPerTrack,
IN ULONG  NumberOfHeads,
IN PDRIVE_LAYOUT_INFORMATION  PartitionBuffer 
)
static

Definition at line 290 of file part_xbox.c.

295 {
296  BOOLEAN HasXboxPartitioning;
298 
299  DPRINT("HalpXboxIoWritePartitionTable(%p %lu %lu %lu %p)\n",
300  DeviceObject,
301  SectorSize,
305 
307  if (!NT_SUCCESS(Status))
308  {
309  return Status;
310  }
311 
312  if (!HasXboxPartitioning)
313  {
314  DPRINT("Delegating to standard MBR code\n");
318  }
319 
320  /* Can't change the partitioning */
321  DPRINT1("Xbox partitions are fixed, can't change them\n");
322  return STATUS_ACCESS_DENIED;
323 }
LONG NTSTATUS
Definition: precomp.h:26
_In_ ULONG _In_ ULONG _In_ ULONG NumberOfHeads
Definition: iofuncs.h:2066
_In_ ULONG _In_ ULONG SectorsPerTrack
Definition: iofuncs.h:2066
_In_ ULONG _In_ BOOLEAN _Out_ struct _DRIVE_LAYOUT_INFORMATION ** PartitionBuffer
Definition: iofuncs.h:2048
unsigned char BOOLEAN
void DPRINT(...)
Definition: polytest.cpp:61
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_ACCESS_DENIED
Definition: udferr_usr.h:145
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
static pHalIoWritePartitionTable NtoskrnlIoWritePartitionTable
Definition: part_xbox.c:26
static NTSTATUS FASTCALL HalpXboxDeviceHasXboxPartitioning(IN PDEVICE_OBJECT DeviceObject, IN ULONG SectorSize, OUT BOOLEAN *HasXboxPartitioning)
Definition: part_xbox.c:101
#define DPRINT1
Definition: precomp.h:8
_In_ ULONG SectorSize
Definition: halfuncs.h:291

Referenced by HalpXboxInitPartIo().

◆ HalpXboxReadSector()

static NTSTATUS HalpXboxReadSector ( IN PDEVICE_OBJECT  DeviceObject,
IN ULONG  SectorSize,
IN PLARGE_INTEGER  SectorOffset,
OUT PVOID  Sector 
)
static

Definition at line 49 of file part_xbox.c.

53 {
54  IO_STATUS_BLOCK StatusBlock;
55  KEVENT Event;
56  PIRP Irp;
58 
59  DPRINT("HalpXboxReadSector(%p %lu 0x%08x%08x %p)\n",
60  DeviceObject, SectorSize, SectorOffset->u.HighPart, SectorOffset->u.LowPart, Sector);
61 
63  ASSERT(Sector);
64 
67  FALSE);
68 
69  /* Read the sector */
72  Sector,
73  SectorSize,
75  &Event,
76  &StatusBlock);
78 
80  Irp);
81  if (Status == STATUS_PENDING)
82  {
84  Executive,
85  KernelMode,
86  FALSE,
87  NULL);
88  Status = StatusBlock.Status;
89  }
90 
91  if (!NT_SUCCESS(Status))
92  {
93  DPRINT("Reading sector failed (Status 0x%08lx)\n", Status);
94  return Status;
95  }
96 
97  return Status;
98 }
#define STATUS_INSUFFICIENT_RESOURCES
Definition: udferr_usr.h:158
PIRP NTAPI IoBuildSynchronousFsdRequest(IN ULONG MajorFunction, IN PDEVICE_OBJECT DeviceObject, IN PVOID Buffer, IN ULONG Length, IN PLARGE_INTEGER StartingOffset, IN PKEVENT Event, IN PIO_STATUS_BLOCK IoStatusBlock)
Definition: irp.c:1069
_In_ PIRP Irp
Definition: csq.h:116
LONG NTSTATUS
Definition: precomp.h:26
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
Definition: wait.c:416
#define FALSE
Definition: types.h:117
_In_ PVOID _In_ ULONG Event
Definition: iotypes.h:439
#define SectorOffset(L)
Definition: cdprocs.h:1622
smooth NULL
Definition: ftsmooth.c:416
void DPRINT(...)
Definition: polytest.cpp:61
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define STATUS_PENDING
Definition: ntstatus.h:82
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
Status
Definition: gdiplustypes.h:24
IN PDEVICE_OBJECT DeviceObject
Definition: fatprocs.h:1569
#define KeInitializeEvent(pEvt, foo, foo2)
Definition: env_spec_w32.h:477
NTSTATUS NTAPI IoCallDriver(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
Definition: irp.c:1218
#define IRP_MJ_READ
Definition: rdpdr.c:46
_In_ ULONG SectorSize
Definition: halfuncs.h:291

Referenced by HalpXboxDeviceHasXboxPartitioning().

Variable Documentation

◆ NtoskrnlExamineMBR

pHalExamineMBR NtoskrnlExamineMBR
static

Definition at line 23 of file part_xbox.c.

Referenced by HalpXboxExamineMBR(), and HalpXboxInitPartIo().

◆ NtoskrnlIoReadPartitionTable

pHalIoReadPartitionTable NtoskrnlIoReadPartitionTable
static

Definition at line 24 of file part_xbox.c.

Referenced by HalpXboxInitPartIo(), and HalpXboxIoReadPartitionTable().

◆ NtoskrnlIoSetPartitionInformation

pHalIoSetPartitionInformation NtoskrnlIoSetPartitionInformation
static

Definition at line 25 of file part_xbox.c.

Referenced by HalpXboxInitPartIo(), and HalpXboxIoSetPartitionInformation().

◆ NtoskrnlIoWritePartitionTable

pHalIoWritePartitionTable NtoskrnlIoWritePartitionTable
static

Definition at line 26 of file part_xbox.c.

Referenced by HalpXboxInitPartIo(), and HalpXboxIoWritePartitionTable().

◆ PartitionType

◆ SectorCount

Definition at line 31 of file part_xbox.c.

Referenced by AddLogicalDiskSpace(), AtaAtapiReadLogicalSectorsLBA(), AtaReadLogicalSectorsLBA(), CacheReadDiskSectors(), CommandDumpSector(), CreateExtendedPartition(), CreateExtendedPartitionPage(), CreateInsertBlankRegion(), CreateLogicalPartition(), CreateLogicalPartitionPage(), CreatePrimaryPartition(), CreatePrimaryPartitionPage(), DeviceRequestReadWrite(), DiskOpen(), DiskPerformSmartCommand(), DiskReadSmartLog(), DiskWriteSmartLog(), Ext2ReadVolumeSectors(), Fat12Format(), Fat16Format(), FatAddMcbEntry(), FatMount(), FatReadPartialCluster(), FatReadVolumeSectors(), FatRemoveMcbEntry(), FatxFormat(), FileSystemToPartitionType(), FsRecGetDeviceSectors(), FsRecNtfsFsControl(), FsRtlAddBaseMcbEntry(), FsRtlAddLargeMcbEntry(), FsRtlAddMcbEntry(), FsRtlGetNextBaseMcbEntry(), FsRtlGetNextLargeMcbEntry(), FsRtlGetNextMcbEntry(), FsRtlLargeMcbTest(), FsRtlLargeMcbTestsExt2(), FsRtlLargeMcbTestsFastFat(), FsRtlLookupMcbEntry(), FsRtlRemoveBaseMcbEntry(), FsRtlRemoveLargeMcbEntry(), FsRtlRemoveMcbEntry(), HalpCalculateChsValues(), HalpXboxIoReadPartitionTable(), InitializePartitionEntry(), IsoBufferDirectory(), main(), NtfsReadSectors(), Pc98DiskReadLogicalSectors(), Pc98DiskReadLogicalSectorsCHS(), Pc98DiskReadLogicalSectorsLBA(), PcDiskReadLogicalSectors(), PcDiskReadLogicalSectorsCHS(), PcDiskReadLogicalSectorsLBA(), PpcDiskReadLogicalSectors(), PpcPrepDiskReadLogicalSectors(), ScanForUnpartitionedDiskSpace(), and XboxDiskReadLogicalSectors().

◆ SectorStart

ULONG SectorStart

Definition at line 30 of file part_xbox.c.

Referenced by HalpXboxIoReadPartitionTable().

◆ XboxPartitions

struct { ... } XboxPartitions[]
Initial value:
=
{
{ 0x0055F400, 0x0098f800, PARTITION_FAT32 },
{ 0x00465400, 0x000FA000, PARTITION_FAT_16 },
{ 0x00000400, 0x00177000, PARTITION_FAT_16 },
{ 0x00177400, 0x00177000, PARTITION_FAT_16 },
{ 0x002EE400, 0x00177000, PARTITION_FAT_16 }
}
#define PARTITION_FAT32
Definition: disk.h:95
#define PARTITION_FAT_16
Definition: disk.h:90

Referenced by HalpXboxIoReadPartitionTable().