Próbuję odmontować wolumin w mojej aplikacji Cocoa przy użyciu Disk Arbitration Framework.Interpretowanie wartości zwracanej (dyskretny) podczas próby odmontowania woluminu w OS X
Przed skontaktowaniem:
DADiskUnmount(disk,
kDADiskUnmountOptionDefault,
unmountCallback,
self);
zarejestrować funkcję zwrotną, że nazywa się potem:
void unmountCallback(DADiskRef disk, DADissenterRef dissenter, void *context)
{
if (dissenter != NULL)
{
DAReturn ret = DADissenterGetStatus(dissenter);
switch (ret) {
case kDAReturnBusy:
printf("kDAReturnBusy\n");
break;
}
}
w tej funkcji staram się interpretować wartości zwracanej dysydent ale utknąć. Przypuszczam, że powinno to być typu DAReturn i mieć wartość taką jak kDAReturnBusy Ale np. iTunes używa woluminu i nie można go odmontować "ret" ma wartość 0xc010, której nie całkiem rozumiem.
W przypadku, gdy odmontowanie nie powiedzie się, chciałbym się dowiedzieć, dlaczego nie można odmontować woluminu, a jeśli inna aplikacja go używa, przypomina użytkownikowi o zamknięciu tej aplikacji.
(Chciałbym dać ci dodatkowe punkty za przemyślaną poradę, którą każdy nowy system powinien zobaczyć w pewnym momencie.) –
@quixoto nie krępuj się zaoferować nagrodę w tej sprawie, a następnie nagródź ją Peter :) –
Dziękuję bardzo, bardzo, Peter za wyczerpującą odpowiedź. To jest dokładnie ta informacja, której szukałem !! – JLinX