Чтение rma области dvd-r/-rw диска
read_dvd_struct_cmd[9] = *((__u8 *)&alloc_size);
test_unit_ready();
if(send_cmd(read_dvd_struct_cmd, 12, SG_DXFER_FROM_DEV, \
buff, alloc_size, 20) < 0) return -1;
/* Размер считанных данных */
*((__u8 *)&dvd_data_len) = buff[1];
*((__u8 *)&dvd_data_len + 1) = buff[0];
dvd_data_len += 2; // учитываем длину самого поля (2 bytes)
printf("DVD STRUCTURE Data Length: %d\n", dvd_data_len);
/* Определяем статус диска */
disk_status = *(RMD + 2);
printf("Disk status: %d\n", disk_status);
/* Считываем Field #3, информацию о Border Zone */
memset(buff, 0, SIZE);
read_dvd_struct_cmd[5] = 3; // Address = 3, read Field #3
test_unit_ready();
if(send_cmd(read_dvd_struct_cmd, 12, SG_DXFER_FROM_DEV, \
buff, alloc_size, 20) < 0) return -1;
/* Отображаем информацию о стартовых координатах Border-out областей диска */
for(i = 0; i <= 2044; i += 4) {
memcpy((void *)&Start_BOUT, RMD + i, 4);
if(!Start_BOUT) break;
Start_BOUT = __swab32(Start_BOUT);
printf("Start Sector Number of Border-out #%d: %u\n", i/4 + 1, Start_BOUT);
}
/* Считываем Field #4, информацию об RZone */
memset(buff, 0, SIZE);
read_dvd_struct_cmd[5] = 4; // Address = 4, read RMD #4
test_unit_ready();
Другие статьи по теме:
- Накопители на сменных магнитных и оптических дисках- Dvd-проигрыватель
- Hd dvd или blu-ray – война форматов
- expansion portable
- Возможности использования dvd