gpt4 book ai didi

macos - 在 C 语言中确定 OS X 中 DVD 驱动器的区域代码而不要求 DVD 位于驱动器中

转载 作者:行者123 更新时间:2023-12-04 15:26:02 25 4
gpt4 key购买 nike

基本上我运行一个计算机网络,需要知道各种计算机的驱动器设置为什么区域代码。我不需要更改区域,但我不知道如何在不单独访问每台计算机并粘贴在光盘中的情况下确定区域。我尝试使用 Apple 的 cocoa DVD 播放框架,但这需要将磁盘插入驱动器,这有点违背了目的。

那么是否有任何 API 可以用来确定 Mac Pro DVD 驱动器上的区域代码,而无需插入光盘?我愿意用几乎任何语言编写代码。

谢谢

最佳答案

我发现了一些能够在 OS X 上处理 DVD 区域设置的实用程序:DVD Info X, and Region X . DVD Info X 将显示驱动器的区域代码,而无需插入 DVD。

区域 X 更有趣,因为尽管它不直接用于您的目的,its source is available .查看它我发现ScanAll Region X.m 中的方法是你所需要的。更具体地说,有趣的情况是找不到磁盘名称(因为没有安装磁盘)并且使用 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 上运行它,结果如预期。

显然,您需要对其进行调整,以便将该部分隔离为您可以使用的内容,但我认为这段代码将是一个有用的起点。

关于macos - 在 C 语言中确定 OS X 中 DVD 驱动器的区域代码而不要求 DVD 位于驱动器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8342767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com