{
PUSBDEVICE UsbDevice;
PUSBD_INTERFACE_INFORMATION InterfaceInfo;
+ NTSTATUS Status;
//
// is the request for the Root Hub
//
// 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;
}
}
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
// 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;
}