| Предыдущий | Следующий |
| kIOReturnMessageTooLarge | kIOReturnNoPower |
kIOReturnNotPermitted
Разрешение не равно наличию возможности
kIOReturnNotPermitted означает, что операция не разрешена в текущем контексте. Устройство может поддерживать функцию и быть полностью исправным, но политика, правило владения, проверка безопасности, ограничение состояния или защищённый режим запрещают этому клиенту её использовать. Это отличается от kIOReturnUnsupported, при котором сама операция не реализована для выбранного объекта или режима.
Слепое повышение привилегий не является универсальным исправлением. Ограничение может задаваться пользовательским клиентом IOKit, драйвером ядра, владельцем эксклюзивного открытия, системной политикой либо состоянием устройства, которое нужно менять через другой API. Задача диагностики — определить границу политики, вернувшую статус.
Что следует проверить
- Запишите идентичность клиента, полномочия или контекст авторизации и точный метод пользовательского клиента или интерфейса.
- Прежде чем считать результат ошибкой привилегий, проверьте, не владеет ли другой процесс устройством эксклюзивно.
- Убедитесь, что запрошенная операция допустима при текущем питании, конфигурации и состоянии носителя.
- Используйте документированные интерфейсы авторизации и служб, а не обходите проверки владения сбросами или принудительным открытием.
Ссылки
- Справочник Apple по IOReturn.h
- Основы Apple IOKit: обзор архитектуры
- Справочник Apple по USBInterfaceOpenSeize
Нужно найти другой код? Найти другой код состояния или ошибки.