Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Определение размера сектора

// ---------------

// Код функции 7

// ---------------

#pragma pack(1)

typedef struct _SectorSize

{

BYTEbFunctionCode;

BYTEbReadMode;

DWORD dwSectorSize;

} SectorSize;

Поле

Описание

bFunctionCode

Код функции

bReadMode

Режим чтения

dwSectorSize

Размер сектора. Для режима Cooked Reading он равен 2048 байт, для режима Raw Reading – 2352 байт

Определение размера тома

// ---------------

// Код функции 8

// ---------------

#pragma pack(1)

typedef struct _VolumeSize

{

BYTEbFunctionCode;

DWORD dwVolumeSize;

} VolumeSize;

Поле

Описание

bFunctionCode

Код функции

dwVolumeSize

Размер тома

Функция возвращает адрес дорожки Lead-out, преобразованное в численное значение по следующей формуле:

frame + (sec * 75) + (min * 60 * 75)

Это значение является адресом первого сектора, который располагается за самым последним адресуемым сектором диска.

Проверка замены носителя данных

// ---------------

// Код функции 9

// ---------------

#pragma pack(1)

typedef struct _MediaChange

{

BYTEbFunctionCode;

BYTEbMedia;

} MediaChange;

Поле

Описание

bFunctionCode

Код функции

bMedia

1 – носитель не заменялся;

0 – не известно, выполнялась замена носителя данных, или нет;

0FFh – носитель заменялся

Получение информации о компакт-диске

// ---------------

// Код функции 10

// ---------------

#pragma pack(1)

typedef struct _DiskInfo

{

BYTEbFunctionCode;

BYTE bLowest;

BYTE bHighest;

DWORD dwTotal;

} DiskInfo;

Поле

Описание

bFunctionCode

Код функции

bLowest

Номер первой дорожки

bHighest

Номер последней дорожки

dwTotal

Адрес дорожки Lead-out

Получение информации о дорожкекомпакт-диска

// ---------------

// Код функции 11

// ---------------

#pragma pack(1)

typedef struct _TrackInfo

{

BYTEbFunctionCode;

BYTE bTrack;

DWORD dwLoc;

BYTE bInfo;

} TrackInfo;

Поле

Описание

bFunctionCode

Код функции

bTrack

Номер дорожки

dwLoc

Первый сектор дорожки

bInfo

Формат дорожки

Старшая тетрада формата дорожки имеет следующий формат:

Значение

Описание

00*0

Два звуковых канала без предискажений

00*1

Два звуковых канала с предискажениями

10*1

Четыре звуковых канала без предискажений

10*0

Четыре звуковых канала с предискажениями

01*0

Дорожка с данными

01*1

Зарезервировано

11**

Зарезервировано

**0*

Копирование дорожки запрещено

**1*

Копирование дорожки разрешено

Состояние бита, отмеченного символом *, значения не имеет.

Младшая тетрада формата дорожки содержит тип режима ADR, описанного в Redbook.

Получение информации о канале q

// ---------------

// Код функции 12

// ---------------

#pragma pack(1)

typedef struct _QInfo

{

BYTEbFunctionCode;

BYTE bCtrlAndARD;

BYTE bTrackNumb;

BYTE bIndex;

BYTE bMin;

BYTE bSec;

BYTE bFrame;

BYTE bRunningTime;

BYTE bAminOrPmin;

BYTE bAsecOrPsec;

BYTE bAframeOrPframe;

} QInfo;

Поле

Описание

bFunctionCode

Код функции

bCtrlAndARD

Формат дорожки

bTrackNumb

Номер дорожки

bIndex

Текущее время, которое прошло с начала проигрывания дорожки

bMin

Компонента MIN адреса дорожки

bSec

Компонента SEC адреса дорожки

bFrame

Компонента FRAME адреса дорожки

bRunningTime

Общее время проигрывания диска

bAminOrPmin

Значение AMIN илиPMIN

bAsecOrPsec

Значение ASEC илиPSEC

bAframeOrPframe

Значение AFRAME илиPFRAME

Соседние файлы в папке несколько программ