Чтобы получить общую емкость диска, вам нужно умножить количество секторов на длину поля пользовательских данных в каждом секторе (которое в режиме 2 CD-ROM / XA (расширенная архитектура) будет иметь 2336 байт вместо2048)
Сектор на CD-ROM содержит 2048 байтов пользовательских данных, оставляя 304 байта для других целей.Каждый сектор данных начинается с 16-байтового заголовка:
- 12-байтовое поле синхронизации (00 ff ff ff ff ff ff ff ff ff ff ff ff 00)
- 3-байтовый адрес (минута, секунда, доля (1/75) секунды
- 1 байт в режиме
Байт режима определяет, как будут выглядеть оставшиеся 2336 байтов в секторе:
- Режим 0: нулевые данные;не служит практической цели для записи CD
- Режим 1: типичная компоновка CD-ROM 2048 байтов пользовательских данных 4 байта EDC (код обнаружения ошибки, 32-битный CRC) 8 байтов зарезервированного пространства, установленонули 172 байта четности «P» 104 байта четности «Q»
- Режим 2: 2336 байтов пользовательских данных, обычно используемых для CD-ROM / XA
Чтобы получить тип данных, предоставленных для секторов в одной дорожке, вы можете использовать метод get_SectorType из интерфейса IRawCDImageTrackInfo .
Возможные типы секторов определяются перечислением IMAPI_CD_SECTOR_TYPE :
typedef enum {
IMAPI_CD_SECTOR_AUDIO = 0x00,
IMAPI_CD_SECTOR_MODE_ZERO = 0x01,
IMAPI_CD_SECTOR_MODE1 = 0x02,
IMAPI_CD_SECTOR_MODE2FORM0 = 0x03,
IMAPI_CD_SECTOR_MODE2FORM1 = 0x04,
IMAPI_CD_SECTOR_MODE2FORM2 = 0x05,
IMAPI_CD_SECTOR_MODE1RAW = 0x06,
IMAPI_CD_SECTOR_MODE2FORM0RAW = 0x07,
IMAPI_CD_SECTOR_MODE2FORM1RAW = 0x08,
IMAPI_CD_SECTOR_MODE2FORM2RAW = 0x09
} IMAPI_CD_SECTOR_TYPE;
- IMAPI_CD_SECTOR_AUDIO С этим типом сектора аудиоданные имеют 2352 байта на каждыйсектор / кадр.Это может быть разбито на 588 смежных выборок, каждая выборка составляет четыре байта.Компоновка одного семпла соответствует 16-битному стереофоническому WAV-файлу 44,1 кГц.Этот тип сектора не имеет дополнительных кодов, исправляющих ошибки.
- IMAPI_CD_SECTOR_MODE_ZERO С этим типом сектора пользовательские данные имеют 2336 байтов на сектор / кадр.Этот редко используемый тип сектора содержит все нулевые данные и сегодня почти никогда не встречается на носителях.
- IMAPI_CD_SECTOR_MODE1 С этим типом сектора пользовательские данные имеют 2048 байтов на сектор / кадр.Данные Mode1 - наиболее распространенная форма данных для прессованных носителей CD-ROM.Этот тип данных также обеспечивает самый высокий уровень ECC / EDC среди стандартных типов секторов.
- IMAPI_CD_SECTOR_MODE2FORM0 С этим типом сектора пользовательские данные имеют 2336 байтов на сектор / кадр.Все типы секторов режима 2 также известны как режимы «CD-ROM XA», которые позволяют микшировать дорожки аудио и данных на одном диске.Этот тип сектора также известен как режим 2 «Бесформенный», считается устаревшим и очень редко используется.
- IMAPI_CD_SECTOR_MODE2FORM1 С этим типом сектора пользовательские данные имеют 2048 байтов на сектор / кадр.Все типы секторов режима 2 также известны как режимы «CD-ROM XA», которые позволяют микшировать звуковые дорожки и дорожки данных на одном диске.
- IMAPI_CD_SECTOR_MODE2FORM2 С этим типом сектора пользовательские данные имеют 2336 байтов на сектор /кадр, из которых последние четыре байта являются необязательным кодом CRC (ноль, если не используется).Все типы секторов режима 2 также известны как режимы «CD-ROM XA», которые позволяют микшировать дорожки аудио и данных на одном диске.Этот тип сектора чаще всего используется при записи дисков VideoCD.
- IMAPI_CD_SECTOR_MODE1RAW С этим типом сектора пользовательские данные имеют 2352 байта на сектор / кадр.Это предварительно обработанные секторы данных Mode1Cooked с заголовком сектора, ECC / EDC и скремблированием, уже добавленными в поток данных.
- IMAPI_CD_SECTOR_MODE2FORM0RAW С этим типом сектора пользовательские данные имеют 2352 байта на сектор / кадр.Это предварительно обработанные секторы данных Mode2Form0 с заголовком сектора, ECC / EDC и скремблированием, уже добавленными в поток данных.
- IMAPI_CD_SECTOR_MODE2FORM1RAW С этим типом сектора пользовательские данные имеют 2352 байта на сектор / кадр.Это предварительно обработанные сектора данных Mode2Form1 с заголовком сектора, ECC / EDC и скремблированием, уже добавленными в поток данных.
- IMAPI_CD_SECTOR_MODE2FORM2RAWС этим типом сектора пользовательские данные имеют 2352 байта на сектор / кадр.Это предварительно обработанные сектора данных Mode2Form2 с заголовком сектора, ECC / EDC и скремблированием, уже добавленными в поток данных.
Примечания: Некоторые типы секторов не совместимы с другими типами секторов в пределах одногообраз.Ниже приведены типичные примеры этого условия: если первая дорожка аудио, то все дорожки должны быть аудио.Если первая дорожка - Mode1, то все дорожки должны быть Mode1.Только три сектора Mode2 (XA) (Форма 2 в Режиме 2, Форма 1 в Режиме 2 и Форма 2 в Режиме 2) могут быть смешаны в одном образе диска, и даже тогда, только с другими типами секторов в Режиме 2 (XA).