Определение состояния устройства
// ---------------
// Код функции 6
// ---------------
#pragma pack(1)
typedef struct _DeviceStatus
{
BYTE bFunctionCode;
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 байта данных, в которые входят заголовок блока данных и контрольная сумма.