Share via


Control Channel Characteristics (Windows CE 5.0)

Send Feedback

The Control channel for the device is its USB Control endpoint. A control message from the host to the device is sent as a SEND_ENCAPSULATED_COMMAND transfer. This transfer is defined in the following table.

BmRequestType bRequest wValue wIndex wLength Data
0x21 0x00 0x0000 bInterfaceNumber field of Communication Class interface descriptor Byte length of control message block Control message block

The host does not continuously poll the USB Control endpoint for input control messages. Upon placing a control message on its Control endpoint, the device must return a notification on the Communication Class interface's Interrupt IN endpoint, which is polled by the host whenever the device can return control messages. The transfer from the device's interrupt IN endpoint to the host is a standard USB Interrupt IN transfer. The only defined device notification is the RESPONSE_AVAILABLE notification, defined in the following table.

Offset (bytes) Length (bytes) Field Data
0 4 Notification RESPONSE_AVAILABLE (0x00000001)
4 4 Reserved 0

Upon receiving the RESPONSE_AVAILABLE notification, the host reads the control message from the Control endpoint using a GET_ENCAPSULATED_RESPONSE transfer, defined in the following table.

bmRequestType bRequest wValue wIndex wLength Data
0xA1 0x01 0x0000 bInterfaceNumber field of Communication Class interface descriptor 0x0400 (this is the minimum byte length of the buffer posted by host) Control message block

If for some reason the device receives a GET_ENCAPSULATED_RESPONSE and is unable to respond with a valid data on the Control endpoint, then it should return a one-byte packet set to 0x00, rather than stalling the Control endpoint.

See Also

USB Host Controller Driver Development Concepts | RNDIS To USB Mapping | USB-RNDIS Power Management | USB-RNDIS Ethernet Device Sample

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.