From: Max Lyadvinsky [ml@acronis.com]
Sent: Friday, September 14, 2001 4:20 AM
To: NT Developers Interest List
Subject: [ntdev] RE: Virtual SCSI Miniport: Problem with MultiSession CD
TOC

You must return the full TOC. The format follows:

/////////////////////////////////////////////////////////////////
//
// READ TOC/PMA/ATIP Command (0x43)
//
/////////////////////////////////////////////////////////////////
#define MMC_READTOC  0x43

/////////////////////////////////////////////////////////////////
// TOC Formats

#define MMC_TOC              0
#define MMC_TOC_SESSIONINFO  1
#define MMC_TOC_FULL         2
#define MMC_TOC_PMA          3
#define MMC_TOC_ATIP         4
#define MMC_TOC_CDTEXT       5


/////////////////////////////////////////////////////////////////
// Point values in full TOC

#define MMC_POINT_MINTRACK      1
#define MMC_POINT_MAXTRACK      0x63
#define MMC_POINT_FIRSTTRACK    0xA0
#define MMC_POINT_LASTTRACK     0xA1
#define MMC_POINT_LEADOUT       0xA2
#define MMC_POINT_FIRSTLEADIN   0xC0


/////////////////////////////////////////////////////////////////
// Disk types

// CD-DA or CD Data with first track in Mode 1
#define MMC_DISK_CD      0

// CD-I disc
#define MMC_DISK_CD_I    0x10

// CD data XA disc with first track in Mode 2
#define MMC_DISK_XA      0x20


/////////////////////////////////////////////////////////////////
// Track control bits
#define MMC_CONTROL_DATA        4


/////////////////////////////////////////////////////////////////
// Full TOC structure for multisession CDs
typedef struct _TOC_FULLDESC
{
 BYTE bSession;             // Session number
 BYTE fControl : 4;         // Control bits
 BYTE fAdr : 4;             // Adr bits
 BYTE bTno;
 BYTE bPoint;
 BYTE bMin;
 BYTE bSec;
 BYTE bFrame;
 BYTE bZero;
 BYTE bPMin;
 BYTE bPSec;
 BYTE bPFrame;
} TOC_FULLDESC, *PTOC_FULLDESC;


typedef struct _TOC_FULL
{
 BYTE msbSize[2];           // TOC Size
 BYTE bFirstSession;        // First session
 BYTE bLastSession;         // Last session
 TOC_FULLDESC TOCDescs[1];  // TOC descriptors
} TOC_FULL, *PTOC_FULL;


Regards,
Max



-----Original Message-----
From: bounce-ntdev-5529@lists.osr.com
[mailto:bounce-ntdev-5529@lists.osr.com]On Behalf Of Arun Gangotri
Sent: Friday, September 14, 2001 11:49 AM
To: NT Developers Interest List
Subject: [ntdev] Virtual SCSI Miniport: Problem with MultiSession CD TOC


hi all,
This is regarding the virtual scsi miniport for cdrom device. My miniport is
working all fine for single session CD images. But it is not working
properly for multisessioned and Video CD's. I am passing the normal toc
containing just the track details. It shows the directory structure but when
open some file, the data is corrupted. Do i need to pass some different kind
of TOC.

I went through the SCSI specification for read_toc command. According to
that, the Scsiop_read_toc request i am getting, is with Format field ( 3rd
Byte of CDB ) 000b. so it means i should pass the normal toc. but when i try
to see the properties of the drive in Explorer, i get scsiop_read_toc with
format field = 010b.
Here i am bit confused about passing the full toc.
Can anybody help me constructing the full toc required for multisessioned
and Video CD.
I had read Max Lyadvinsky previous postings, where he had mentioned that one
need to pass different toc for multisessioned and video CD. Max , can you
help me?

Thanks in Advance.
Best Regards.
Arun







---
You are currently subscribed to ntdev as: ml@acronis.com
To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com


---
You are currently subscribed to ntdev as: GlennEverhart@FirstUSA.com
To unsubscribe send a blank email to leave-ntdev-247T@lists.osr.com