- 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:
Johannes Anderwald 2012-12-07 09:33:05 +00:00
parent bbda91790a
commit e5f8728f35
2 changed files with 16 additions and 2 deletions

View file

@ -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;
}

View file

@ -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;
}