| Предыдущий | Следующий |
| kIOReturnExclusiveAccess | kIOReturnUnsupported |
kIOReturnBadMessageID
Несоответствие идентификатора, а не размера полезной нагрузки
kIOReturnBadMessageID означает, что отправленное и принятое сообщения имеют разные значения msg_id. Он указывает на расхождение в определении операции или сообщения в пути связи. Заголовок не описывает аппаратный отказ, поэтому замена кабеля или повтор передачи устройства обычно не являются первым полезным действием.
Ищите несовместимость версий интерфейса, неправильный селектор или идентификатор уведомления, маршрутизацию запроса не той службе либо гонку жизненного цикла, при которой ответ относится к другой операции. Это состояние отличается от kIOReturnMessageTooLarge, где проблема заключается в размере, а не идентичности сообщения.
Как диагностировать
- Зафиксируйте ожидаемый и полученный идентификаторы, версию интерфейса, селектор и экземпляр службы.
- Убедитесь, что обе стороны собраны с совместимыми заголовками и используют одно определение протокола или метода.
- Связывайте запросы и ответы идентификатором отдельной операции, чтобы устаревшие завершения были заметны.
- После сброса или удаления сделайте сведения о службе недействительными и обнаружьте её заново, прежде чем принимать сообщения от нового экземпляра.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.