Что означает код возврата ядра macOS 0xE0008104 (kIOFireWireCompleting)?

 
Предыдущий Следующий
kIOFireWireHardwareSlept kIOFireWireInvalidResponseLength

kIOFireWireCompleting

Исследуйте уже выполняемое завершение операции FireWire имеет практический смысл только вместе с компонентом, который его вернул. Семейство FireWire уже завершает операцию, поэтому второе действие жизненного цикла встречает незавершённую границу completion.

Практический смысл

Результаты IOKit, внутренние маркеры и сообщения служб проходят через пользовательское пространство, службы ядра и семейства оборудования при диагностике уже выполняемого завершения операции FireWire. Одинаковое целочисленное представление не делает их роли в управлении взаимозаменяемыми при анализе уже выполняющегося завершения FireWire.

Возвращаемые значения IOKit, внутренние маркеры и сообщения служб имеют одинаковое целочисленное представление, но различный смысл для потока управления при диагностике уже выполняемого завершения операции FireWire. Определите, возвращает ли API это значение или доставляет его как сообщение, прежде чем считать его ошибкой при анализе уже выполняющегося завершения FireWire. Сохраняйте числовое значение, объявленный тип результата и первую вернувшую его операцию вместе с kIOFireWireCompleting; то же целое число может принадлежать другому пространству статусов в другом API.

Диагностические данные

Что сохранитьДиагностическая ценность
Идентификатор операции, callback завершения, переход состояния, workloop или поток, поколение шины и второго вызывающего.Определяет конкретный объект и операцию, связанные с уже выполняемым завершением операции FireWire.
Числовое значение IOReturn или сообщения, декодированное по соответствующему заголовочному файлу SDK для диагностики уже выполняемого завершения операции FireWire.Отделяет состояние аргумента или жизненного цикла от нижележащего провайдера при уже выполняемом завершении операции FireWire.
Поколение реестра и первое событие провайдера или клиента перед уже выполняемым завершением операции FireWire.Создаёт устойчивое сравнение состояния до и после уже выполняемого завершения операции FireWire.
Состояние заведомо исправного устройства или службы на той же сборке macOS и драйвера для сравнения с уже выполняемым завершением операции FireWire.Показывает, является ли уже выполняемое завершение операции FireWire первичным результатом или преобразованной сводкой.

Для уже выполняемого завершения операции FireWire сохраните идентификатор операции, callback завершения, переход состояния, workloop или поток, поколение шины и второго вызывающего до переустановки, перезагрузки, очистки состояния или подмены устройства либо провайдера при анализе уже выполняющегося завершения FireWire. Успех только после такого изменения полезен как сравнительный результат для уже выполняемого завершения операции FireWire, но не устанавливает исходную причину.

Проверки, разделяющие причины

  1. Сериализуйте один запрос до возврата его callback завершения. Не меняйте остальные условия, чтобы проверить именно повторный вход в завершение при анализе уже выполняющегося завершения FireWire.
  2. Изменяйте по одному условию топологии или жизненного цикла, сохраняя полезную нагрузку запроса неизменной при анализе уже выполняющегося завершения FireWire. Повторяйте исходную поддерживаемую операцию, чтобы проверка оставалась относящейся к уже выполняемому завершению операции FireWire.
  3. Проверьте очистку и срок жизни объектов после контролируемой операции при анализе уже выполняющегося завершения FireWire. Не меняйте несвязанные входные данные, чтобы результат можно было связать с уже выполняемым завершением операции FireWire.

Как интерпретировать сравнение

Наблюдаемое сравнениеСледующий проверяемый вывод
Первая контрольная проверка изменила результатСосредоточьтесь на изолированной переменной: сериализуйте один запрос до возврата его callback завершения. Не меняйте остальные условия, чтобы проверить именно повторный вход в завершение.
Вторая проверка уже выполняемого завершения операции FireWire воспроизводит тот же первый статусСохраните данные нижележащего провайдера, драйвера, службы или среды выполнения до изменения данных приложения. Вторая контролируемая проверка изменяла одно условие топологии или жизненного цикла при неизменной полезной нагрузке запроса при анализе уже выполняющегося завершения FireWire.
После ограниченного изменения уже выполняемое завершение операции FireWire сменилось другим статусомПосле третьей проверки операция перешла к другой границе. Проверялись очистка и срок жизни объектов. Сохраните оба результата и интерпретируйте новый статус по его собственному контракту API, отдельно от уже выполняемого завершения операции FireWire.

Критерии устранения

Целевое исправление. Назначьте завершению единственного владельца и отложите close или повторное использование до терминального callback либо состояния. Для уже выполняемого завершения операции FireWire изменяйте только объект, аргумент, политику, провайдер или состояние жизненного цикла, на которые указывают собранные данные.

Критерий приёмки. Каждый запрос завершается ровно один раз, а параллельные cancel и close не могут повторно войти в completion. Повторите исходную операцию, при которой возникло уже выполняемое завершение операции FireWire с исходной идентичностью и поддерживаемой конфигурацией, затем сохраните одну отрицательную контрольную проверку, по-прежнему дающую ожидаемый соседний результат.

Технические ссылки

Эти источники владельцев технологий или стандартов определяют пространство имён и контракт подсистемы, необходимые для проверки kIOFireWireCompleting в используемой версии платформы.


Нужно найти другой код? Найти другой код состояния или ошибки.