mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +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:
@@ -1044,6 +1044,7 @@ CHubController::HandleSelectConfiguration(
|
||||
{
|
||||
PUSBDEVICE UsbDevice;
|
||||
PUSBD_INTERFACE_INFORMATION InterfaceInfo;
|
||||
NTSTATUS Status;
|
||||
|
||||
//
|
||||
// is the request for the Root Hub
|
||||
@@ -1110,7 +1111,13 @@ CHubController::HandleSelectConfiguration(
|
||||
//
|
||||
// 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;
|
||||
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
|
||||
@@ -1891,6 +1898,12 @@ CHubController::HandleVendorDevice(
|
||||
// issue request
|
||||
//
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1123,6 +1123,7 @@ CUSBDevice::SelectConfiguration(
|
||||
if (!NT_SUCCESS(Status))
|
||||
{
|
||||
// failed
|
||||
DPRINT1("[LIBUSB] Failed to copy interface descriptor Index %lu InterfaceDescriptor %p InterfaceInfo %p\n", ConfigurationIndex, InterfaceDescriptor, InterfaceInfo);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user