logo
несколько программ / bsp33

Определение состояния устройства

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

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

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

#pragma pack(1)

typedef struct _DeviceStatus

{

BYTEbFunctionCode;

DWORD dwDeviceParameters;

} DeviceStatus;

Поле

Описание

bFunctionCode

Код функции

dwDeviceParameters

32-разрядное слово состояния устройства

Описания отдельных бит слова состояния приведено ниже:

Бит

Описание

0

1 – устройство открыто, в него можно вставлять диск;

0 – устройство закрыто

1

0 – устройство заблокировано, из него нельзя извлечь диск;

1 – устройство разблокировано

2

0 – устройство может работать только в режиме Cooked Reading;

1 – дополнительно может использоваться режимRaw Reading

3

0 – устройстов может только читать компакт-диски;

1 – устройство может читать и записывать компакт-диски

4

0 – устройство может работать только с дорожками, содержащими данные:

1 – дополнительно устройство может проигрывать звуковые дорожки или дорожки с видео

5

0 – устройство не способно работать с чередованием данных;

1 – устройство работает с чередованием данных в стандарте ISO‑9660

6

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

7

0 – предварительная выборка не применяется;

1 – устройство способно выполнять запросы на предварительную выборку

8

0 – устройство не работает со звуковыми каналами;

1 – устройство может работать со звуковыми каналами

9

0 – устройство может работать в режиме адресации HSG;

1 – дополнительно можно использовать режим адресацииRedbook

10

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

11

0 – в устройстве находится компакт-диск;

1 – в устройстве нет компакт-диска

12

0 – устрйство не работает с подканалами R-W;

1 – указанные каналы используются

13-31

Зарезервировано и равно нулю

Немного о режимах Cooked и Raw.

По умолчанию устройство чтения CD-ROM работает в режимеCooked. Этот режим предполагает аппаратную обработку циклической контрольной суммы. Размер блока данных равен 2048 байт.

В режиме Raw драйвер возвращает 2352 байта данных, в которые входят заголовок блока данных и контрольная сумма.