TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Vitus Jensen
from: Mike Bilow
date: 1995-11-26 16:42:26
subject: CD-ROM control programming

Vitus Jensen wrote in a message to Mike Bilow:

 MB> You can read raw sectors off of a CD-ROM by simply calling 
 MB> DosOpen() against the drive letter with the OPEN_FLAGS_DASD bit 
 MB> asserted.  However, this will fail if CDFS.IFS is loaded, since 
 MB> it claims ownership of the drive letter.

 VJ> I have no problems to read a data CDROM using the code I
 VJ> posted here the other day. Any switches different between
 VJ> your and my call to DosOpen? 

Whether DosOpen() fails with OPEN_FLAGS_DASD asserted if CDFS.IFS is loaded
appears to be specific to the version of CDFS.IFS.

 MB> If you comment out the load of CDFS.IFS in CONFIG.SYS, then no 
 MB> file system will claim the drive letter created for the CD-ROM 
 MB> drive by OS2CDROM.DMD, and you can do direct access to it.

 VJ> You can't lock the device if a filesystem driver is loaded.
 VJ> But you don't need a lock if you're only reading (who wants
 VJ> to write to a CDROM?). 

Technically, what happens when direct access calls are made to a drive
letter being actively managed by a file system is that the IFS gets
notifications from the DMD about the access attempts, and it can either
allow or decline them.  This is handled by a callback process between the
IFS and DMD, depending upon the driver capabilities bits.

Locks can be manageed by the IFS itself if it is set up to do this, but
will be handled by the FS Router (a component of the kernel above the IFS)
by default.  You are right that a lock is not required for reading unless
there is a concurrent writer, which obviously never happens for CD-ROM.

 VJ> The comments in the source of OS2CDROM.DMD declare a device
 VJ> with /!DM set won't by allocated. But this flag is never
 VJ> tested. Perhaps the production code works that way.

Only OS2DASD.DMD should check the "/!DM" switch.  The comment in
the source looks like a consequence of cut and paste from OS2DASD.DMD.
 
-- Mike


--- 
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)
SEEN-BY: 270/101 620/243 711/401 409 410 413 430 807 808 809 934 955 712/407
SEEN-BY: 712/515 517 628 713/888 800/1 7877/2809
@PATH: 323/107 150 3615/50 396/1 270/101 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

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™.