3.3.5.4.3 URB Completion No Data Message
The structure and fields of the URB_COMPLETION_NO_DATA message are specified in section 2.2.7.3.
The client MUST use the RequestId received in the corresponding TRANSFER_IN_REQUEST message if the Transfer In operation generates no data or Transfer Out operation when constructing this reply. The result of the Transfer In operation that generates no data or Transfer Out operation performed MUST be returned in the URB_COMPLETION_NO_DATA message. If the Transfer In operation generates return data, the client MUST use the URB_COMPLETION message instead.
The client MUST send one and only one URB_COMPLETION message with matching RequestId value if data is generated, or one and only one URB_COMPLETION_NO_DATA message with matching RequestId value if no data is generated, for each TRANSFER_IN_REQUEST message it receives from the server.
The client MUST send one and only one URB_COMPLETION_NO_DATA message for each TRANSFER_OUT_REQUEST message it receives from the server.