Чтение блока physical format information dvd-r/-rw диска
В поле Data Area Allocation (байты 5-15) содержатся номера физических секторов начала и окончания области данных
DVD-диска (Data Area). Содержание поля Medium Unique Data зависит от типа DVD-диска: для дисков типа DVD-R/-RW
for General Ver.2.0 в этом поле находится физический адрес зоны Extra Border Zone – значение 02FE10h, и значение
2FFA0h – координаты блока Physical format information из Extra Border Zone (см. табл.22 спецификации INF-8090i [2]).
Если поле Format содержит значение 0x00, то с диска будет прочитан блок Physical Format Information из последней
Border-in области. В этом случае в поле Medium Unique Data будет находиться адрес текущей Border-out области (по
смещению 32 байта от начала Layer Descriptor), и адрес следующей Border-in области (см. табл.21 спецификации INF-
8090i [2]).
Рассмотрим функцию, выполняющую чтение блока Physical Format Information. Входные параметры функции – значение
поля Format, которое определяет, из какой области будет считываться блок. Работоспособность всех программ была
проверена для ОС Linux, ядро 2.4.31, использовались следующие модели приводов:
- ASUS DRW-1604P 1.09.
- _NEC DVD-RW ND-3520A.
int read_PFI(__u8 ffield)
{
__u8 read_dvd_struct_cmd[12];
__u16 alloc_size = 2052; // размер запрашиваемых данных (4 байта заголовка + 2048 байт данных)
__u8 buff[2052]; // буфер для пакета данных
__u32 Start_DA = 0, End_DA = 0; // начало и конец области данных диска
__u32 u_part = 0; // значение из поля Medium Unique Data
layer_descr_t *ldesc = (void *)(buff + 4); // указатель на начало Layer Descriptor
memset(buff, 0, 2052);
memset(read_dvd_struct_cmd, 0, 12);
Другие статьи по теме:
- Портативный dvd ergo tf-dvd7050d 7- Dvd+r
- Dvd-r
- Сегодня, главная проблема - это совместимость с дисками dvd-ram
- Композитный видеосигнал ПЦТС