| Предыдущий | Следующий |
| kIOFireWirePending | kIOFireWireConfigROMInvalid |
kIOFireWireLastDCLToken
Исследуйте внутренний маркер последнего callback DCL в месте первой доставки, пока оболочка не заменила его общим сообщением. Семейство FireWire использует это значение как внутренний маркер последнего callback или token в программе Device Control Language; это не общая пользовательская ошибка ввода-вывода.
Практический смысл
Результаты IOKit, внутренние маркеры и сообщения служб проходят через пользовательское пространство, службы ядра и семейства оборудования при диагностике внутреннего маркера последнего callback DCL. Одинаковое целочисленное представление не делает их роли в управлении взаимозаменяемыми при анализе последнего маркера DCL FireWire.
Возвращаемые значения IOKit, внутренние маркеры и сообщения служб имеют одинаковое целочисленное представление, но различный смысл для потока управления при диагностике внутреннего маркера последнего callback DCL. Определите, возвращает ли API это значение или доставляет его как сообщение, прежде чем считать его ошибкой при анализе последнего маркера DCL FireWire. Сохраняйте числовое значение, объявленный тип результата и первую вернувшую его операцию вместе с kIOFireWireLastDCLToken; то же целое число может принадлежать другому пространству статусов в другом API.
Диагностические данные
| Что сохранить | Диагностическая ценность |
|---|---|
| Структуру программы DCL, порядок callbacks, значение token, поколение программы, канал и трассу завершения. | Определяет конкретный объект и операцию, связанные с внутренним маркером последнего callback DCL. |
| Числовое значение IOReturn или сообщения, декодированное по соответствующему заголовочному файлу SDK для диагностики внутреннего маркера последнего callback DCL. | Отделяет состояние аргумента или жизненного цикла от нижележащего провайдера при внутреннем маркере последнего callback DCL. |
| Поколение реестра и первое событие провайдера или клиента перед внутренним маркером последнего callback DCL. | Создаёт устойчивое сравнение состояния до и после внутреннего маркера последнего callback DCL. |
| Состояние заведомо исправного устройства или службы на той же сборке macOS и драйвера для сравнения с внутренним маркером последнего callback DCL. | Показывает, является ли внутренний маркер последнего callback DCL первичным результатом или преобразованной сводкой. |
Для внутреннего маркера последнего callback DCL сохраните структуру программы dcl, порядок callbacks, значение token, поколение программы, канал и трассу завершения до переустановки, перезагрузки, очистки состояния или подмены устройства либо провайдера при анализе последнего маркера DCL FireWire. Успех только после такого изменения полезен как сравнительный результат для внутреннего маркера последнего callback DCL, но не устанавливает исходную причину.
Проверки, разделяющие причины
- Запустите минимальную программу DCL с одним явно заданным финальным callback. Изменившийся результат означает новую границу, а не автоматическое устранение исходного состояния при анализе последнего маркера DCL FireWire.
- Изменяйте по одному условию топологии или жизненного цикла, сохраняя полезную нагрузку запроса неизменной при анализе последнего маркера DCL FireWire. Повторяйте исходную поддерживаемую операцию, чтобы проверка оставалась относящейся к внутреннему маркеру последнего callback DCL.
- Проверьте очистку и срок жизни объектов после контролируемой операции при анализе последнего маркера DCL FireWire. Не меняйте несвязанные входные данные, чтобы результат можно было связать с внутренним маркером последнего callback DCL.
Как интерпретировать сравнение
| Наблюдаемое сравнение | Следующий проверяемый вывод |
|---|---|
| Первая контрольная проверка изменила результат | Сосредоточьтесь на изолированной переменной: запустите минимальную программу DCL с одним явно заданным финальным callback. Изменившийся результат означает новую границу, а не автоматическое устранение исходного состояния. |
| Вторая проверка внутреннего маркера последнего callback DCL воспроизводит тот же первый статус | Сохраните данные нижележащего провайдера, драйвера, службы или среды выполнения до изменения данных приложения. Вторая контролируемая проверка изменяла одно условие топологии или жизненного цикла при неизменной полезной нагрузке запроса при анализе последнего маркера DCL FireWire. |
| После ограниченного изменения внутренний маркер последнего callback DCL сменилось другим статусом | После третьей проверки операция перешла к другой границе. Проверялись очистка и срок жизни объектов. Сохраните оба результата и интерпретируйте новый статус по его собственному контракту API, отдельно от внутреннего маркера последнего callback DCL. |
Критерии устранения
Целевое исправление. Обрабатывайте token согласно контракту владеющего API FireWire и не преобразуйте его в общий путь ошибки. Для внутреннего маркера последнего callback DCL изменяйте только объект, аргумент, политику, провайдер или состояние жизненного цикла, на которые указывают собранные данные.
Критерий приёмки. Финальный callback вызывается ровно один раз, а teardown программы не принимает token за ошибку. Повторите исходную операцию, при которой возникло внутренний маркер последнего callback DCL с исходной идентичностью и поддерживаемой конфигурацией, затем сохраните одну отрицательную контрольную проверку, по-прежнему дающую ожидаемый соседний результат.
Технические ссылки
Эти источники владельцев технологий или стандартов определяют пространство имён и контракт подсистемы, необходимые для проверки kIOFireWireLastDCLToken в используемой версии платформы.
- Apple XNU: определения IOReturn — определяет пространство статусов, используемое для внутреннего маркера последнего callback DCL.
- Apple: документация IOKit — описывает границу API или жизненного цикла, связанную с внутренним маркером последнего callback DCL.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола для внутреннего маркера последнего callback DCL.
- Apple XNU: общие определения семейства FireWire — помогает учитывать ограничения переносимости и проверки внутреннего маркера последнего callback DCL.
Нужно найти другой код? Найти другой код состояния или ошибки.