You move the drive head to a specific track by passing an ioexttd to the device with td_seek or etd_seek set in io_command, and io_offset set to the byte offset of the track to which the seek is to occur. DiskIO->iotd_Req.io_Offset = (ULONG)(TRACK_SIZE * track); DiskIO->iotd_Req.io_Command = TD_SEEK; DoIO((struct IORequest *)DiskIO); Seeking is not Reading. ----------------------- td_seek and etd_seek do not verify their position until the next read. That is, they only move the heads; they do not actually read any data.