IOCTL_CDROM_RAW_READ on data CDs

I’m trying to use IOCTL_CDROM_RAW_READ to read raw CD data but for some
reason it doesn’t work on
the data CD. Audio CDs can be read without any problem. Basically what
I’m doing is like this:

#define RAW_SECTOR_SIZE 2352
RAW_READ_INFO rri;
rri.DiskOffset.QuadPart = 1;
rri.SectorCount = 1;
rri.TrackMode = YellowMode2;
int nReadSize = RAW_SECTOR_SIZE;
unsigned char* buffer = new unsigned char[nReadSize*2];
cb = 0;
bRet = DeviceIoControl(hDev, IOCTL_CDROM_RAW_READ, &rri, sizeof(rri),
buffer, nReadSize*2, &cb,
NULL);

I get GetLastError() == 1 whatever sector size I try, 2352 or 2048. This
code is pretty much a copy
of something that another guy swears works under NT 4.0. Any suggestions
would be appreciated.

Alex Feinman


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

>I’m trying to use IOCTL_CDROM_RAW_READ to read raw CD data but for some

reason it doesn’t work on
the data CD. Audio CDs can be read without any problem.

Perhaps your seeing a difference in drive capabilities? So the “difference”
with NT 4 is the drive not the OS. You might also look at the cdrom class
driver for the source to that IOCTL (a scan for IOCTL_CDROM_RAW_READ should
find it). Perhaps it does something inappropriate for your needs.

  • Jan

You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com