X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/e5e7eaee7af719cee00a8c2cb6fb4649dde0aa05..938f86d06321c1a29cf87201000a9dae4e5a7c25:/Demos/Device/RNDISEthernet/RNDISEthernet.c diff --git a/Demos/Device/RNDISEthernet/RNDISEthernet.c b/Demos/Device/RNDISEthernet/RNDISEthernet.c index ec8eb7b87..8338cdd00 100644 --- a/Demos/Device/RNDISEthernet/RNDISEthernet.c +++ b/Demos/Device/RNDISEthernet/RNDISEthernet.c @@ -150,10 +150,10 @@ EVENT_HANDLER(USB_UnhandledControlPacket) uint16_t wLength = Endpoint_Read_Word_LE(); /* Process RNDIS class commands */ - switch (bRequest) + switch (USB_ControlRequest.bRequest) { case REQ_SendEncapsulatedCommand: - if (bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) + if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE)) { /* Clear the SETUP packet, ready for data transfer */ Endpoint_ClearSETUP(); @@ -170,8 +170,11 @@ EVENT_HANDLER(USB_UnhandledControlPacket) break; case REQ_GetEncapsulatedResponse: - if (bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) + if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) { + /* Clear the SETUP packet, ready for data transfer */ + Endpoint_ClearSETUP(); + /* Check if a response to the last message is ready */ if (!(MessageHeader->MessageLength)) { @@ -180,15 +183,8 @@ EVENT_HANDLER(USB_UnhandledControlPacket) MessageHeader->MessageLength = 1; } - /* Check if less than the requested number of bytes to transfer */ - if (MessageHeader->MessageLength < wLength) - wLength = MessageHeader->MessageLength; - - /* Clear the SETUP packet, ready for data transfer */ - Endpoint_ClearSETUP(); - /* Write the message response data to the endpoint */ - Endpoint_Write_Control_Stream_LE(RNDISMessageBuffer, wLength); + Endpoint_Write_Control_Stream_LE(RNDISMessageBuffer, MessageHeader->MessageLength); /* Finalize the stream transfer to send the last packet or clear the host abort */ Endpoint_ClearOUT();