我正在尝试使用磁盘仲裁框架在我的 Cocoa 应用程序中卸载卷。
打电话前:
DADiskUnmount(disk,
kDADiskUnmountOptionDefault,
unmountCallback,
self );
我注册了一个之后调用的回调函数:
void unmountCallback(DADiskRef disk, DADissenterRef dissenter, void *context )
{
if (dissenter != NULL)
{
DAReturn ret = DADissenterGetStatus(dissenter);
switch (ret) {
case kDAReturnBusy:
printf("kDAReturnBusy\n");
break;
}
}
在这个函数中,我尝试解释异议者返回值但被卡住了。我想它应该是 DAReturn 类型并且具有类似kDAReturnBusy的值但是当例如 iTunes 正在使用该卷并且它不能被卸载时,“ret”的值是 0xc010,我不太明白。
如果卸载失败,我想找出无法卸载该卷的原因,如果另一个应用程序正在使用它,请提醒用户关闭该应用程序。