Я нашел некоторые утилиты, которые способны работать с настройками региона DVD на OS X: DVD Info X и Region X .На DVD Info X будет отображаться код региона вашего привода без необходимости вставлять DVD.
Регион X более интересен, поскольку, хотя он и не служит вашим целям, его источник доступен .Глядя на это, я обнаружил, что метод ScanAll
в Region X.m
- это то, что вам нужно.В частности, интересным случаем является случай, когда имя диска не найдено (поскольку диск не смонтирован), и для определения свойств дисковода DVD используется команда SCSI (вызовы printf
являются моим дополнением):
task = (*scsitaskinterface)->CreateSCSITask(scsitaskinterface);
if (task)
{
cdb[0] = 0xa4;
cdb[1] = 0x00;
cdb[2] = 0x00;
cdb[3] = 0x00;
cdb[4] = 0x00;
cdb[5] = 0x00;
cdb[6] = 0x00;
cdb[7] = 0x00;
cdb[8] = (sizeof(DVDInfo) >> 8) & 0xff;
cdb[9] = sizeof(DVDInfo) & 0xff;
cdb[10] = 0x08;
cdb[11] = 0x00;
memset(&DVDInfo, 0, sizeof(DVDInfo));
ProcessCDB(task, cdb, 12, DirIn, &DVDInfo, sizeof(DVDInfo), 30000);
printf("drive region %#hhx\n", DVDInfo.driveRegion);
printf("number of region changes left: %hhu\n", DVDInfo.numberUserResets);
if (DVDInfo.rpcScheme == 0) RPC1++;
if (DVDInfo.rpcScheme != 0) RPC2++;
(*task)->Release(task);
}
Я запустил это на своем Macbook Pro, и результат был ожидаемым.
Очевидно, вам нужно будет помассировать его, чтобы выделить эту часть во что-то, что вы можете использовать, но я думаю,что этот код будет полезной отправной точкой.