Я разрабатываю приложение, которое использует дисковый арбитраж, чтобы выяснить, какие устройства подключены к машине, и реагировать на подключение/отключение событий и что работает хорошо годами. Совсем недавно я обнаружил, что что-то не работает должным образом при работе с внешними накопителями thunderbolt, и я отлаживал это, чтобы найти, что выталкиваемое свойство тома (kDADiskDescriptionMediaEjectableKey в Disk Arbitration, которое соответствует kIOMediaEjectableKey i IOKit), установлено в false. Однако привод отображается с кнопкой извлечения.Приводы Thunderbolt не помечены как извлеченные в арбитраж диска/iokit, хотя они явно
Что искатель использует, чтобы решить, является ли этот том эжекционным? Очевидно, не очевидный kDADiskDescriptionMediaEjectableKey.
Любой намек оценили.
Я не уверен на это на 100%, но я подозреваю, что OS X показывает кнопку извлечения для любых внешних дисков. (т. е. не внутренний: 'kDADiskDescriptionDeviceInternalKey' является ложным). Приводы Thunderbolt - это действительно просто внешние контроллеры дисков PCIe и не имеют концепции шины« выталкивания »; щелчок выталкивания обычно просто отключает громкость и отправляет диск в режим ожидания. Вы можете повторно установить его в любое время, если вы его не отключите. Сравните это со многими USB-накопителями, которые на самом деле, похоже, упадут с шины, когда вы их выталкиваете. – pmdj
ОК, большое спасибо! Это единственная альтернатива, которую я видел, но документация isInternal в лучшем случае отрывочна, но до сих пор для всех проверенных дисков это кажется правильным, поэтому я, вероятно, сделаю это. Я буду ждать немного больше ответов, прежде чем закрывать это, чтобы дать еще несколько ответов, но тогда я, вероятно, соглашусь с этим в качестве ответа. – user1573546
Соблюдая собственные драйверы устройства хранения данных, я могу сказать, что внутреннее/внешнее различие чисто основано на драйверах - так что водитель вполне может утверждать, что внешний накопитель является внутренним и наоборот. В какой-то степени вам просто нужно доверять этому драйверу ... В любом случае, я отвечу на свой ответ, а не на комментарий. – pmdj