diff options
Diffstat (limited to 'rbutil/ipodpatcher/ipodio-win32.c')
-rw-r--r-- | rbutil/ipodpatcher/ipodio-win32.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/rbutil/ipodpatcher/ipodio-win32.c b/rbutil/ipodpatcher/ipodio-win32.c index 83f00b8cd9..342a06a358 100644 --- a/rbutil/ipodpatcher/ipodio-win32.c +++ b/rbutil/ipodpatcher/ipodio-win32.c @@ -86,6 +86,10 @@ int ipod_open(struct ipod_t* ipod, int silent) return -1; } + /* Defaults */ + ipod->num_heads = 0; + ipod->sectors_per_track = 0; + if (!DeviceIoControl(ipod->dh, IOCTL_DISK_GET_DRIVE_GEOMETRY_EX, NULL, @@ -105,10 +109,14 @@ int ipod_open(struct ipod_t* ipod, int silent) if (!silent) print_error(" Error reading disk geometry: "); return -1; } else { - ipod->sector_size=diskgeometry.BytesPerSector; + ipod->sector_size = diskgeometry.BytesPerSector; + ipod->num_heads = diskgeometry.TracksPerCylinder; + ipod->sectors_per_track = diskgeometry.SectorsPerTrack; } } else { - ipod->sector_size=diskgeometry_ex.Geometry.BytesPerSector; + ipod->sector_size = diskgeometry_ex.Geometry.BytesPerSector; + ipod->num_heads = diskgeometry_ex.Geometry.TracksPerCylinder; + ipod->sectors_per_track = diskgeometry_ex.Geometry.SectorsPerTrack; } return 0; |