mirror of
https://github.com/reactos/reactos.git
synced 2024-09-30 22:47:28 +00:00
[LIBUSB]
- Set USBD status when a device is successfully configured and transferred length for vendor class requests - Add error msg when copying of interface descriptor fails svn path=/trunk/; revision=57813
This commit is contained in:
parent
bbda91790a
commit
e5f8728f35
|
@ -1044,6 +1044,7 @@ CHubController::HandleSelectConfiguration(
|
||||||
{
|
{
|
||||||
PUSBDEVICE UsbDevice;
|
PUSBDEVICE UsbDevice;
|
||||||
PUSBD_INTERFACE_INFORMATION InterfaceInfo;
|
PUSBD_INTERFACE_INFORMATION InterfaceInfo;
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
//
|
//
|
||||||
// is the request for the Root Hub
|
// is the request for the Root Hub
|
||||||
|
@ -1110,7 +1111,13 @@ CHubController::HandleSelectConfiguration(
|
||||||
//
|
//
|
||||||
// select configuration
|
// select configuration
|
||||||
//
|
//
|
||||||
return UsbDevice->SelectConfiguration(Urb->UrbSelectConfiguration.ConfigurationDescriptor, &Urb->UrbSelectConfiguration.Interface, &Urb->UrbSelectConfiguration.ConfigurationHandle);
|
Status = UsbDevice->SelectConfiguration(Urb->UrbSelectConfiguration.ConfigurationDescriptor, &Urb->UrbSelectConfiguration.Interface, &Urb->UrbSelectConfiguration.ConfigurationHandle);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
// successfully configured device
|
||||||
|
Urb->UrbSelectConfiguration.Hdr.Status = USBD_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
return Status;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1843,7 +1850,7 @@ CHubController::HandleVendorDevice(
|
||||||
PUSBDEVICE UsbDevice;
|
PUSBDEVICE UsbDevice;
|
||||||
USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup;
|
USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup;
|
||||||
|
|
||||||
DPRINT("CHubController::HandleVendorDevice Request %x\n", Urb->UrbControlVendorClassRequest.Request);
|
//DPRINT("CHubController::HandleVendorDevice Request %x\n", Urb->UrbControlVendorClassRequest.Request);
|
||||||
|
|
||||||
//
|
//
|
||||||
// sanity check
|
// sanity check
|
||||||
|
@ -1891,6 +1898,12 @@ CHubController::HandleVendorDevice(
|
||||||
// issue request
|
// issue request
|
||||||
//
|
//
|
||||||
Status = UsbDevice->SubmitSetupPacket(&CtrlSetup, Urb->UrbControlVendorClassRequest.TransferBufferLength, Urb->UrbControlVendorClassRequest.TransferBuffer);
|
Status = UsbDevice->SubmitSetupPacket(&CtrlSetup, Urb->UrbControlVendorClassRequest.TransferBufferLength, Urb->UrbControlVendorClassRequest.TransferBuffer);
|
||||||
|
if (NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
// success
|
||||||
|
Urb->UrbControlVendorClassRequest.Hdr.Status = USBD_STATUS_SUCCESS;
|
||||||
|
Irp->IoStatus.Information = Urb->UrbControlVendorClassRequest.TransferBufferLength;
|
||||||
|
}
|
||||||
|
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1123,6 +1123,7 @@ CUSBDevice::SelectConfiguration(
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
{
|
{
|
||||||
// failed
|
// failed
|
||||||
|
DPRINT1("[LIBUSB] Failed to copy interface descriptor Index %lu InterfaceDescriptor %p InterfaceInfo %p\n", ConfigurationIndex, InterfaceDescriptor, InterfaceInfo);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue