3.3.5.3.6 Processing a Transfer In Request Message
The structure and fields of the TRANSFER_IN_REQUEST message are specified in section 2.2.6.7.
After receiving the TRANSFER_IN_REQUEST message, the client MUST forward the request to the physical device. When the physical device completes the request, the client MUST send the result of the request to the server via URB_COMPLETION or URB_COMPLETION_NO_DATA message and the RequestId field in the message MUST match the RequestId in the TRANSFER_IN_REQUEST message.
If TRANSFER_IN_REQUEST results in data to be returned to the server, the client MUST use the URB_COMPLETION message to send the result. If TRANSFER_IN_REQUEST results in no data to be returned to the server, the client MUST use the URB_COMPLETION_NO_DATA message to send the result and the OutputBufferSize field MUST be zero.
The TRANSFER_IN_REQUEST message contains OutputBufferSize field. This indicates the maximum amount of data the client can send to the server when sending the final result of this request via URB_COMPLETION. If the physical device returns more data than the OutputBufferSize field specifies, the client MUST terminate the dynamic virtual channel.