Чтение rma области dvd-r/-rw диска
read_dvd_struct_cmd[2] = *((__u8 *)&addr + 3);
read_dvd_struct_cmd[3] = *((__u8 *)&addr + 2);
read_dvd_struct_cmd[4] = *((__u8 *)&addr + 1);
read_dvd_struct_cmd[5] = *((__u8 *)&addr);
test_unit_ready();
if(send_cmd(read_dvd_struct_cmd, 12, SG_DXFER_FROM_DEV, \
buff, alloc_size, 200) < 0) return -1;
printf("\nField #4 (sector %u)\n", addr);
*((__u8 *)&Inv_RZone_num + 1) = RMD[0];
*((__u8 *)&Inv_RZone_num) = RMD[1];
printf("Invisible/Incomplete RZone Number: %d\n", Inv_RZone_num);
printf("RZone\tSTART\tLAST\n");
for(i = 1, n = 16; i <= Inv_RZone_num; i++, n += 8) {
memcpy((void *)&Start_RZone, RMD + n, 4);
Start_RZone = __swab32(Start_RZone);
memcpy((void *)&LRA_RZone, RMD + n + 4, 4);
LRA_RZone = __swab32(LRA_RZone);
printf("%-d\t%-d\t%-d\n", i, Start_RZone, LRA_RZone);
}
}
printf("\n");
return 0;
}
Полный текст программы чтения RMA области DVD-RW диска находится в файле
SOURCE/DVD/READ_DVD_STRUCT/read_RMA_DVDRW_SEQ.c.
Устанавливаем в привод полностью очищенный DVD-RW диск и запускаем программу на выполнение. Проанализируем
результаты работы программы.
Вначале программа определяет номер последнего сектора, записанного в RMA область:
Last recorded RMA sector number: 111
Другие статьи по теме:
- Физика работы привода dvd- Видеокарты и видеоускорители
- Blu-ray
- Как работает формат dvd
- Проигрыватели серии dvd-c