| Предыдущий | Следующий |
| kIOFireWireIsochBandwidthNotAvailable | kIOFWMessagePowerStateChanged |
kIOFWMessageServiceIsRequestingClose
Исследуйте сообщение FireWire с запросом закрытия службы как результат контракта, а не основание сбрасывать несвязанное состояние. Это сообщение IOKit уведомляет клиента, что служба FireWire просит закрытия; оно относится к жизненному циклу, а не к ошибке передачи.
Первый уровень доставки
Результаты IOKit, внутренние маркеры и сообщения служб проходят через пользовательское пространство, службы ядра и семейства оборудования при диагностике сообщения FireWire с запросом закрытия службы. Одинаковое целочисленное представление не делает их роли в управлении взаимозаменяемыми при анализе запроса закрытия службы FireWire.
Возвращаемые значения IOKit, внутренние маркеры и сообщения служб имеют одинаковое целочисленное представление, но различный смысл для потока управления при диагностике сообщения FireWire с запросом закрытия службы. Определите, возвращает ли API это значение или доставляет его как сообщение, прежде чем считать его ошибкой при анализе запроса закрытия службы FireWire. Сохраняйте числовое значение, объявленный тип результата и первую вернувшую его операцию вместе с kIOFWMessageServiceIsRequestingClose; то же целое число может принадлежать другому пространству статусов в другом API.
Диагностические данные
| Что сохранить | Диагностическая ценность |
|---|---|
| Запись службы в реестре, клиентское соединение, время сообщения, число открытий и ожидающие запросы. | Определяет конкретный объект и операцию, связанные с сообщением FireWire с запросом закрытия службы. |
| Числовое значение IOReturn или сообщения, декодированное по соответствующему заголовочному файлу SDK для диагностики сообщения FireWire с запросом закрытия службы. | Отделяет состояние аргумента или жизненного цикла от нижележащего провайдера при сообщении FireWire с запросом закрытия службы. |
| Поколение реестра и первое событие провайдера или клиента перед сообщением FireWire с запросом закрытия службы. | Создаёт устойчивое сравнение состояния до и после сообщения FireWire с запросом закрытия службы. |
| Состояние заведомо исправного устройства или службы на той же сборке macOS и драйвера для сравнения с сообщением FireWire с запросом закрытия службы. | Показывает, является ли сообщение FireWire с запросом закрытия службы первичным результатом или преобразованной сводкой. |
Для сообщения FireWire с запросом закрытия службы сохраните запись службы в реестре, клиентское соединение, время сообщения, число открытий и ожидающие запросы до переустановки, перезагрузки, очистки состояния или подмены устройства либо провайдера при анализе запроса закрытия службы FireWire. Успех только после такого изменения полезен как сравнительный результат для сообщения FireWire с запросом закрытия службы, но не устанавливает исходную причину.
Изменяйте по одному условию
- Подтвердите сообщение и закройте одноразовый клиент, затем повторите исходную поддерживаемую операцию. Изменившийся результат должен быть связан именно с обработкой запроса закрытия при анализе запроса закрытия службы FireWire.
- Изменяйте по одному условию топологии или жизненного цикла, сохраняя полезную нагрузку запроса неизменной при анализе запроса закрытия службы FireWire. Повторяйте исходную поддерживаемую операцию, чтобы проверка оставалась относящейся к сообщению FireWire с запросом закрытия службы.
- Проверьте очистку и срок жизни объектов после контролируемой операции при анализе запроса закрытия службы FireWire. Не меняйте несвязанные входные данные, чтобы результат можно было связать с сообщением FireWire с запросом закрытия службы.
Как интерпретировать сравнение
| Наблюдаемое сравнение | Следующий проверяемый вывод |
|---|---|
| Первая контрольная проверка изменила результат | Сосредоточьтесь на изолированной переменной: подтвердите сообщение и закройте одноразовый клиент, затем повторите исходную поддерживаемую операцию. Изменившийся результат должен быть связан именно с обработкой запроса закрытия. |
| Вторая проверка сообщения FireWire с запросом закрытия службы воспроизводит тот же первый статус | Сохраните данные нижележащего провайдера, драйвера, службы или среды выполнения до изменения данных приложения. Вторая контролируемая проверка изменяла одно условие топологии или жизненного цикла при неизменной полезной нагрузке запроса при анализе запроса закрытия службы FireWire. |
| После ограниченного изменения сообщение FireWire с запросом закрытия службы сменилось другим статусом | После третьей проверки операция перешла к другой границе. Проверялись очистка и срок жизни объектов. Сохраните оба результата и интерпретируйте новый статус по его собственному контракту API, отдельно от сообщения FireWire с запросом закрытия службы. |
Исправление и регрессионная проверка
Целевое исправление. Остановите ввод-вывод, освободите ресурсы user client и выполните закрытие через документированный обработчик сообщения. Для сообщения FireWire с запросом закрытия службы изменяйте только объект, аргумент, политику, провайдер или состояние жизненного цикла, на которые указывают собранные данные.
Критерий приёмки. Клиент закрывается без утечки открытий, а последующее открытие использует новое поколение службы. Повторите исходную операцию, при которой возникло сообщение FireWire с запросом закрытия службы с исходной идентичностью и поддерживаемой конфигурацией, затем сохраните одну отрицательную контрольную проверку, по-прежнему дающую ожидаемый соседний результат.
Технические ссылки
Эти источники владельцев технологий или стандартов определяют пространство имён и контракт подсистемы, необходимые для проверки kIOFWMessageServiceIsRequestingClose в используемой версии платформы.
- Apple XNU: определения IOReturn — определяет пространство статусов, используемое для сообщения FireWire с запросом закрытия службы.
- Apple: документация IOKit — описывает границу API или жизненного цикла, связанную с сообщением FireWire с запросом закрытия службы.
- Apple OSS: исходный код XNU — предоставляет контекст ABI, реализации или протокола для сообщения FireWire с запросом закрытия службы.
- Apple XNU: общие определения семейства FireWire — помогает учитывать ограничения переносимости и проверки сообщения FireWire с запросом закрытия службы.
Нужно найти другой код? Найти другой код состояния или ошибки.
