[英]Determining a DVD drive's region code in OS X in C WITHOUT requiring that a DVD be in the drive
基本上我运行一个计算机网络,需要知道各种计算机的驱动器设置的区域代码。 我不需要更改区域,但我不知道如何确定区域,而无需单独访问每台计算机并粘贴在光盘中。 我尝试使用Apple的可可DVD播放框架,但这需要将磁盘插入驱动器,这有点挫败了目的。
那么我可以使用任何API来确定Mac Pro DVD驱动器上的区域代码而无需插入光盘吗? 我愿意用几乎任何语言编写代码。
谢谢
我找到了一些能够处理OS X上的DVD区域设置的实用程序: DVD Info X和Region X. DVD Info X将显示驱动器的区域代码,无需插入DVD。
区域X更有趣,因为虽然它不直接服务于您的目的,但它的来源是可用的 。 看着它,我发现Region Xm
的ScanAll
方法就是你所需要的。 更具体地说,有趣的情况是找不到磁盘名称的情况(因为没有安装磁盘),并且使用SCSI命令查找DVD驱动器的属性( 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上运行了这个,结果如预期的那样。
显然你需要按摩它以便将那部分隔离成你可以使用的东西,但我认为这段代码将是一个有用的起点。
我没有这样的答案,但我有2个链接给你:
由于这些是纯SCSI命令 - 它可能适用于Mac。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.