void EVENT_USB_Device_UnhandledControlRequest(void)
{
- /* Process UFI specific control requests */
switch (USB_ControlRequest.bRequest)
{
case REQ_GetOSFeatureDescriptor:
if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_VENDOR | REQREC_DEVICE))
{
void* DescriptorPointer;
- uint16_t DescriptorSize;
+ uint16_t DescriptorSize = USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
+ &DescriptorPointer, &DescriptorSize);
- if (!(USB_GetOSFeatureDescriptor(USB_ControlRequest.wValue, USB_ControlRequest.wIndex,
- &DescriptorPointer, &DescriptorSize)))
- {
- return;
- }
+ if (DescriptorSize == NO_DESCRIPTOR)
+ return;
Endpoint_ClearSETUP();
Endpoint_Write_Control_PStream_LE(DescriptorPointer, DescriptorSize);
- Endpoint_ClearOUT();
+ Endpoint_ClearOUT();
}
break;