2.2.9.16 TS_URB_CONTROL_TRANSFER_EX
This packet represents the URB structure URB_CONTROL_TRANSFER_EX, as specified in [MSFT-W2KDDK] Volume 2, Part 4, Chapter 3. URB_CONTROL_TRANSFER_EX is same as URB_CONTROL_TRANSFER except URB_CONTROL_TRANSFER_EX contains a new field called timeout following the TransferBufferMDL field. The timeout field in URB_CONTROL_TRANSFER_EX is 32-bit unsigned integer. If the TransferFlags field in URB_CONTROL_TRANSFER_EX contains the USBD_TRANSFER_DIRECTION_IN flag, the packet is sent using the TRANSFER_IN_REQUEST message with the OutputBufferSize field set to TransferBufferLength as defined in URB_CONTROL_TRANSFER_EX; otherwise, the packet is sent using the TRANSFER_OUT_REQUEST message with the OutputBufferSize field set to TransferBufferLength and the OutputBuffer field set to the data in TransferBuffer or TransferBufferMDL as defined in URB_CONTROL_TRANSFER_EX.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
TS_URB_HEADER |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
|
PipeHandle |
|||||||||||||||||||||||||||||||
|
TransferFlags |
|||||||||||||||||||||||||||||||
|
Timeout |
|||||||||||||||||||||||||||||||
|
SetupPacket |
|||||||||||||||||||||||||||||||
|
... |
|||||||||||||||||||||||||||||||
TS_URB_HEADER (8 bytes): A TS_URB_HEADER as specified in section 2.2.9.1.1.
PipeHandle (4 bytes): A 32-bit unsigned integer. The handle returned from the client after it successfully completes a TS_URB_SELECT_INTERFACE request.
TransferFlags (4 bytes): A 32-bit unsigned integer. This value is from the TransferFlags field in URB_CONTROL_TRANSFER_EX.
Timeout (4 bytes): A 32-bit unsigned integer. This value is from the Timeout field in URB_CONTROL_TRANSFER_EX. This value indicates the time, in milliseconds, before the request times out. A value of zero indicates that there is no timeout for this request. The value of this field is passed to the physical device.
SetupPacket (8 bytes): An array of 8-bytes. This value is from the SetupPacket field in URB_CONTROL_TRANSFER_EX.