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