Спецификация USB.Rev1.0

       

Каналы Сообщений


Каналы Сообщений взаимодействуют с конечной точкой не так, как потоки в каналах. Сначала, хост посылает запрос устройству USB. Этот запрос сопровождается передачей(ами) данных в соответствующем направлении. В заключение, следует несколько позже стадия состояния являющаяся ответом от конечной точки(Finally, a status stage follows at some later time by a response from the endpoint.) Чтобы разместить образец запроса/данных/состояния, каналы сообщений делают поток связи структурированным, что позволяет командам быть достоверно идентифицированными и сообщенными (In order to accommodate the request / data / status paradigm, message pipes impose a structure on the communication flow which allows commands to be reliably identified and communicated). Каналы Сообщений позволяют потоку связи иметь два направления, хотя в потоке связи может преобладать и одно направление. Создаваемый по умолчанию канала с Конечной точки 0, является всегда каналом сообщений.

Программное обеспечение системы USB гарантирует, что множество запросов не будут одновременно посланы конечной точке. Во время обращения к конечной точке требуется только один сервис запроса сообщения(An endpoint is only required to service a single message request at a time per endpoint). Несколько клиентских программных обеспечений на хосте могут делать запросы через Создаваемый по умолчанию канал, но они посылают их конечной точке в порядке "первым пришел", "первым вышел". Конечная точка может управлять потоком информации при перемещении данных и фазами состояния, основанных на способности ответить на транзакции хоста (обратитесь к Главе 8 для более подробного ознакомления)(An endpoint can control the flow of information during the data and status stages based on its ability to respond to the host transactions).

Конечной точке обычно не будет послано следующее сообщение от хоста, пока обработка текущего сообщения в конечной точке не будет завершено. Однако, имеются условия ошибки, в следствии чего передача сообщения может быть прервана хостом, и конечной точке может быть послано новое сообщение преждевременно (в зависимости от планов ). В зависимости от планов программного обеспечения, управляющего каналом сообщения, при ошибке в некоторой части IRP удаляется текущий IRP и все поставленные в очередь IRPs. Клиентскому программному обеспечению, которое запросило IRP, сообщают о завершении IRP с индикацией соответствующей ошибки.

Канал сообщений к устройству требует один номер конечной точки устройства в обоих направлениях (Входные(IN) и Выходные(OUT) маркеры). USB не позволяет каналу сообщений быть связанным с различными номерами конечной точки для каждого направления.

Каналы Сообщений поддерживают передачи типа управления, объясняемые ниже.



Содержание раздела