TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: ALL
from: MIKE RUSKAI
date: 1999-10-14 19:29:00
subject: DosDevIOCtl, cat8, f64

I'm collecting information on the size of the HPFS directory band, with
respect to the size of the drive.  To do this, I read the Super Block by
opening the drive as a file.

This fails, however, with drives over 2GB in size, since DosRead() and
cousins can't handle files that size (except perhaps on Aurora - I had one
person run it successfully on a 14GB drive, and am awaiting information on
what he's running).

To get around this, I figure I need to make a call to DosDevIOCtl(),
category 8 (IOCTL_DISK), function 0x64 (DSK_READTRACK).

The problem is that part of the parameters are the drive head and cylinder.
How do I figure out which head and cylinder I need to read from?  This
isn't a physical disk category, so I don't see why the head and cylinder
are there in the first place.

I managed to get the function to run (it seems very sensitive to invalid
parameters, even when they appear quite valid), using 0 for the head and
cylinder values.  What I get back, however, is data that doesn't appear to
be on the drive at all.

Can anyone shed some light on this?

Mike Ruskai
thannymeister@yahoo.com


... And the sound we make together is the music to the story in your eyes.

___ Blue Wave/QWK v2.20
--- Platinum Xpress/Win/Wildcat5! v3.0pr2
900/525
* Origin: FIDO QWK MAIL & MORE! WWW.DOCSPLACE.ORG (1:3603/140)

SOURCE: echoes via The OS/2 BBS

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.