Чтение rma области dvd-r/-rw диска |
13-06-2025 |
/* Cчитываем информацию об RZone */
alloc_size = SIZE1; // размер данных для чтения – 1 сектор
memset(buff, 0, SIZE);
read_dvd_struct_cmd[8] = *((__u8 *)&alloc_size + 1);
read_dvd_struct_cmd[9] = *((__u8 *)&alloc_size);
/* Пропускаем первые пять RMD блоков формата Format 2,
* и считываем все Field #0 и Field #4 из каждого следующего RMD блока формата Format 1.
* Field #0 - это 1й сектор от начала RMD блока, а Field #4 - 5й сектор от начала RMD блока
* формата Format 1 (включая Linking Loss area)
*/
for(k = 5;;k++) {
addr = 16 * k + 1;
if(addr > LRS) break;
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;
*((__u8 *)&RMD_Format + 1) = RMD[0];
*((__u8 *)&RMD_Format) = RMD[1];
disk_status = RMD[2];
printf("\nField #0 (sector %u)\n", addr);
printf("RMD Format: %d\t", RMD_Format);
printf("Disk Status: %.2X\n", disk_status);
/* Считываем Field #4 */
addr += 4;
Подключение внешнего накопителя scsi
Проигрыватели серии dvd-c
Существует несколько способов первичной прошивки чистой микросхемы
Orion
Если объектив чистый