2.2.7.2 URB Completion (URB_COMPLETION)

The URB_COMPLETION request is sent from the client to the server as the final result of a TRANSFER_IN_REQUEST that contains output data.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Header (variable)

...

RequestId

CbTsUrbResult

TsUrbResult (variable)

...

HResult

OutputBufferSize

OutputBuffer (variable)

...

Header (variable): The SHARED_MSG_HEADER (as specified in section 2.2.1). The InterfaceId field MUST match the value sent previously in the RequestCompletion field of the REGISTER_REQUEST_CALLBACK message. The Mask field MUST be set to STREAM_ID_PROXY. The FunctionId field MUST be set to URB_COMPLETION (0x00000101).

RequestId (4 bytes): A 32-bit unsigned integer. This field MUST match the value sent previously in the RequestId field of TsUrb structure in the TRANSFER_IN_REQUEST message.

CbTsUrbResult (4 bytes): A 32-bit unsigned integer. The size, in bytes, of the TsUrbResult field.

TsUrbResult (variable): A TS_URB_RESULT structure as defined in 2.2.10.

HResult (4 bytes): A 32-bit unsigned integer that indicates the HRESULT of the operation.

OutputBufferSize (4 bytes): A 32-bit unsigned integer. The size, in bytes, of the OutputBuffer field.

OutputBuffer (variable): A data buffer that results from processing the request.