IOCTL_CDROM_READ_TOC

Hello,

I’m working on a virtual cd-rom driver. It should load from .nrg files and
other formats. I am able to load data cds. When I’m trying to load
audio-cds… it does not work. From what I understand the problem is with
the answer to GET_DISK_GEOMETRY or/and READ_TOC. I don’t know how to build
the answers. I read the specs from t10. They say that for all cd formats
the data begins at 2 mins … 0x8000 address. I looked there… but
there’s just 0x00. For all the audio-cd images the data begins around
0x57770 address. But it’s variable (+/- 0x100). So… I’m stuck.
If there is anybody who could help me… PLEASE, give me a hand with this.

Thank you,
Ciubotaru O. Andrei

  1. Dump class driver based CD-ROM emulator source and start writing it as
    SCSI miniport or monolithic SCSI port driver (good idea is keeping SCSI
    initiator code separated from the actual SCSI device target code). With
    class driver you’ll sink in all that tons of IOCTLs you’ll have to
    support.

  2. Get software SCSI bus analyzer (something like BusHound from Perisoft,
    very good priced and featured product) and start tracing real hardware
    SCSI device responses to CDBs you’ll be pinging it with. And step-by-step
    implement the same behavior in your software.

If done properly in 3-6 monthes you’ll have 100st working CD-ROM emulator.

Regards,
Anton Kolomyeytsev

Hello,

I’m working on a virtual cd-rom driver. It should load from .nrg files and
other formats. I am able to load data cds. When I’m trying to load
audio-cds… it does not work. From what I understand the problem is with
the answer to GET_DISK_GEOMETRY or/and READ_TOC. I don’t know how to build
the answers. I read the specs from t10. They say that for all cd formats
the data begins at 2 mins … 0x8000 address. I looked there… but
there’s just 0x00. For all the audio-cd images the data begins around
0x57770 address. But it’s variable (+/- 0x100). So… I’m stuck.
If there is anybody who could help me… PLEASE, give me a hand with this.

Thank you,
Ciubotaru O. Andrei

What!

I could whip one together in a few hours! Bus analyzer! WTF! The SCSI
specification works just fine; if you can read; which seems to be a problem
some folks on the list.

A BUS ANALYZER! Filter drivers! WTF! If nothing else, look at the class
driver source and see what CDBs are sent to the target. A bus analyzer! WTF!

Jamey Kirby, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Anton Kolomyeytsev
Sent: Friday, August 15, 2003 4:13 PM
To: File Systems Developers
Subject: [ntfsd] Re: IOCTL_CDROM_READ_TOC

  1. Dump class driver based CD-ROM emulator source and start writing it as
    SCSI miniport or monolithic SCSI port driver (good idea is keeping SCSI
    initiator code separated from the actual SCSI device target code). With
    class driver you’ll sink in all that tons of IOCTLs you’ll have to
    support.

  2. Get software SCSI bus analyzer (something like BusHound from Perisoft,
    very good priced and featured product) and start tracing real hardware
    SCSI device responses to CDBs you’ll be pinging it with. And step-by-step
    implement the same behavior in your software.

If done properly in 3-6 monthes you’ll have 100st working CD-ROM emulator.

Regards,
Anton Kolomyeytsev

Hello,

I’m working on a virtual cd-rom driver. It should load from .nrg files and
other formats. I am able to load data cds. When I’m trying to load
audio-cds… it does not work. From what I understand the problem is with
the answer to GET_DISK_GEOMETRY or/and READ_TOC. I don’t know how to build
the answers. I read the specs from t10. They say that for all cd formats
the data begins at 2 mins … 0x8000 address. I looked there… but
there’s just 0x00. For all the audio-cd images the data begins around
0x57770 address. But it’s variable (+/- 0x100). So… I’m stuck.
If there is anybody who could help me… PLEASE, give me a hand with this.

Thank you,
Ciubotaru O. Andrei


You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

I’ll try to answer. Generally speaking not to you (I do not think you’re
realling in need of this) but to the other guys who may get confused with
your message.

The answer is “it depends”. It depends of how seriously you treat this
project. You can really write down a very simple CD-ROM emulator in a few
hours (“write” means in your particular case “cut-n-paste” from your 6 or
7 year old project you’re still very proud of). However you’ll have a very
hard times trying to sell your software to somebody or even trying to get
real use of it yourself **NOW**. Since it will not emulate any single
CD-ROM based protection (SafeDisc storing some data in the usually
unreadable part of lead-in and using “weak” sectors with broken ECC that
should be readen differently time after time same sector, StarForce that
verifies the rotation angles of the disc so you should emulate physical
rotation of the emulated disc media, TagEs that present many sectors with
the same address marker and you should pick up the right one from the 10
or 20 sectors all called “LBA 1000” for example etc etc etc) or DVD-ROM
based protection. Will your 6 or 7 year old emulator support CSS (Content
Scrambling System)? Will it allow you to play the CSS protected DVD-Video
disc image with the software DVD player w/o crashes? I think the answer is
“no”. Just b/s in your “best times” there were no such things. And they
are not listed in SCSI specification BTW. I’m in touch with the number of
CD-ROM emulator developers (tons of brands on the market bus just a few
people maintaining them) and no single one survived w/o some of the tools
I’ve listed (and you added SCSI filters, thank you for this!). That’s all
I wanted to say. Pointed to my own mistake (starting CD-ROM emulator as
class driver instead of SCSI miniport or SCSI port) and pointed to the
tools I use to make my life easier. Maybe it will help to Andrei. Maybe it
will not. But your “shout of soul” – “WTF! I can ship this in two hours!”
will not help to anybody for sure. Sorry for this!

Regards,
Anton Kolomyeytsev

What!

I could whip one together in a few hours! Bus analyzer! WTF! The SCSI
specification works just fine; if you can read; which seems to be a =
problem
some folks on the list.

A BUS ANALYZER! Filter drivers! WTF! If nothing else, look at the class
driver source and see what CDBs are sent to the target. A bus analyzer! =
WTF!

Jamey Kirby, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

=20

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Anton Kolomyeytsev
Sent: Friday, August 15, 2003 4:13 PM
To: File Systems Developers
Subject: [ntfsd] Re: IOCTL_CDROM_READ_TOC

  1. Dump class driver based CD-ROM emulator source and start writing it =
    as
    SCSI miniport or monolithic SCSI port driver (good idea is keeping SCSI
    initiator code separated from the actual SCSI device target code). With
    class driver you’ll sink in all that tons of IOCTLs you’ll have to
    support.

  2. Get software SCSI bus analyzer (something like BusHound from =
    Perisoft,
    very good priced and featured product) and start tracing real hardware
    SCSI device responses to CDBs you’ll be pinging it with. And =
    step-by-step
    implement the same behavior in your software.

If done properly in 3-6 monthes you’ll have 100st working CD-ROM =
emulator.

Regards,
Anton Kolomyeytsev

> Hello,
>=20
> I’m working on a virtual cd-rom driver. It should load from .nrg files =
and
> other formats. I am able to load data cds. When I’m trying to load
> audio-cds… it does not work. From what I understand the problem is =
with
> the answer to GET_DISK_GEOMETRY or/and READ_TOC. I don’t know how to =
build
> the answers. I read the specs from t10. They say that for all cd =
formats
> the data begins at 2 mins … 0x8000 address. I looked there… but
> there’s just 0x00. For all the audio-cd images the data begins around
> 0x57770 address. But it’s variable (+/- 0x100). So… I’m stuck.
> If there is anybody who could help me… PLEASE, give me a hand with =
this.
>=20
> Thank you,
> Ciubotaru O. Andrei


You are currently subscribed to ntfsd as: xxxxx@storagecraft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com