Интерпретировать возвращаемое значение (несогласный) при попытке размонтировать том в OS X

Я пытаюсь отключить том в моем приложении Какао с помощью Disk Arbitration Framework.

Перед вызовом:

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, которое я не совсем понимаю.

В случае, если размонтирование не удается, я хотел бы выяснить, почему том не может быть размонтирован, и в случае, если его использует другое приложение напомнить пользователю о закрытии этого приложения.

8
задан Peter Hosey 19 December 2011 в 19:08
поделиться