39 for (UnitNumber = 0; UnitNumber <= DetectedCount; UnitNumber++)
63 if (DriveNumber < 0x80 || (DriveNumber & 0x0F) >= 2)
74 if (((DriveNumber & 0xF0) > 0x80) &&
CdDrive)
89 TRACE(
"XboxDiskReadLogicalSectors() DriveNumber: 0x%x SectorNumber: %I64d SectorCount: %d Buffer: 0x%x\n",
104 TRACE(
"XboxDiskGetDriveGeometry(0x%x)\n", DriveNumber);
#define DBG_DEFAULT_CHANNEL(ch)
PDEVICE_UNIT AtaGetDevice(_In_ UCHAR UnitNumber)
BOOLEAN AtaInit(_Out_ PUCHAR DetectedCount)
BOOLEAN AtaReadLogicalSectors(_In_ PDEVICE_UNIT DeviceUnit, _In_ ULONG64 SectorNumber, _In_ ULONG SectorCount, _Out_writes_bytes_all_(SectorCount *DeviceUnit->SectorSize) PVOID Buffer)
Data structure for the ATA device.
ULONG BytesPerSector
Number of bytes per sector.
ULONG Cylinders
Number of cylinders on the disk.
ULONGLONG Sectors
Total number of disk sectors/LBA blocks.
ULONG SectorsPerTrack
Number of sectors per track.
ULONG Heads
Number of heads on the disk.
static PDEVICE_UNIT HardDrive
static BOOLEAN AtaInitialized
static VOID XboxDiskInit(VOID)
static PDEVICE_UNIT XboxDiskDriveNumberToDeviceUnit(UCHAR DriveNumber)
BOOLEAN XboxDiskReadLogicalSectors(IN UCHAR DriveNumber, IN ULONGLONG SectorNumber, IN ULONG SectorCount, OUT PVOID Buffer)
ULONG XboxDiskGetCacheableBlockCount(UCHAR DriveNumber)
BOOLEAN XboxDiskGetDriveGeometry(UCHAR DriveNumber, PGEOMETRY Geometry)
static PDEVICE_UNIT CdDrive