- Implement URB_FUNCTION_VENDOR_DEVICE
- Sensibly handle unknown requests in HandleClassDevice
- DPRINT fixes

svn path=/trunk/; revision=56660
This commit is contained in:
Thomas Faber 2012-05-26 17:19:41 +00:00
parent 571a6d3ce6
commit 8ea9a9d758
3 changed files with 158 additions and 40 deletions

View file

@ -27,7 +27,7 @@ UrbCompletion(
// Get the original Irp // Get the original Irp
// //
OriginalIrp = (PIRP)Context; OriginalIrp = (PIRP)Context;
// //
// Update it to match what was returned for the IRP that was passed to RootHub // Update it to match what was returned for the IRP that was passed to RootHub
// //
@ -224,7 +224,7 @@ USBHUB_PdoHandleInternalDeviceControl(
// //
Urb = (PURB)Stack->Parameters.Others.Argument1; Urb = (PURB)Stack->Parameters.Others.Argument1;
ASSERT(Urb); ASSERT(Urb);
// //
// Set the real device handle // Set the real device handle
// //
@ -274,11 +274,14 @@ USBHUB_PdoHandleInternalDeviceControl(
} }
*/ */
break; break;
} }
case URB_FUNCTION_CLASS_INTERFACE: case URB_FUNCTION_CLASS_INTERFACE:
DPRINT1("URB_FUNCTION_CLASS_INTERFACE\n"); DPRINT1("URB_FUNCTION_CLASS_INTERFACE\n");
break; break;
case URB_FUNCTION_VENDOR_DEVICE:
DPRINT1("URB_FUNCTION_VENDOR_DEVICE\n");
break;
default: default:
DPRINT1("IOCTL_INTERNAL_USB_SUBMIT_URB Function %x NOT IMPLEMENTED\n", Urb->UrbHeader.Function); DPRINT1("IOCTL_INTERNAL_USB_SUBMIT_URB Function %x NOT IMPLEMENTED\n", Urb->UrbHeader.Function);
break; break;
@ -323,11 +326,11 @@ USBHUB_PdoHandleInternalDeviceControl(
*PortStatusBits += *PortStatusBits +=
(((PortStatus.Status & USB_PORT_STATUS_CONNECT) << 1) << ((PortId - 1) * 2)) + (((PortStatus.Status & USB_PORT_STATUS_CONNECT) << 1) << ((PortId - 1) * 2)) +
(((PortStatus.Status & USB_PORT_STATUS_ENABLE) >> 1) << ((PortId - 1) * 2)); (((PortStatus.Status & USB_PORT_STATUS_ENABLE) >> 1) << ((PortId - 1) * 2));
} }
} }
} }
DPRINT1("Arg1 %x\n", *PortStatusBits); DPRINT1("Arg1 %x\n", *PortStatusBits);
Status = STATUS_SUCCESS; Status = STATUS_SUCCESS;
break; break;
@ -609,7 +612,7 @@ USBHUB_PdoHandlePnp(
case IRP_MN_QUERY_RESOURCE_REQUIREMENTS: case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
{ {
DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n"); DPRINT("IRP_MJ_PNP / IRP_MN_QUERY_RESOURCE_REQUIREMENTS\n");
Information = Irp->IoStatus.Information; Information = Irp->IoStatus.Information;
Status = Irp->IoStatus.Status; Status = Irp->IoStatus.Status;
break; break;

View file

@ -69,6 +69,7 @@ public:
NTSTATUS HandleClassOther(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleClassOther(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleClassInterface(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleClassInterface(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleClassEndpoint(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleClassEndpoint(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleVendorDevice(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleBulkOrInterruptTransfer(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleBulkOrInterruptTransfer(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleIsochronousTransfer(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleIsochronousTransfer(IN OUT PIRP Irp, PURB Urb);
NTSTATUS HandleClearStall(IN OUT PIRP Irp, PURB Urb); NTSTATUS HandleClearStall(IN OUT PIRP Irp, PURB Urb);
@ -94,7 +95,7 @@ protected:
PDEVICE_OBJECT m_HubControllerDeviceObject; PDEVICE_OBJECT m_HubControllerDeviceObject;
PDRIVER_OBJECT m_DriverObject; PDRIVER_OBJECT m_DriverObject;
PVOID m_HubCallbackContext; PVOID m_HubCallbackContext;
PRH_INIT_CALLBACK m_HubCallbackRoutine; PRH_INIT_CALLBACK m_HubCallbackRoutine;
USB_DEVICE_DESCRIPTOR m_DeviceDescriptor; USB_DEVICE_DESCRIPTOR m_DeviceDescriptor;
@ -433,7 +434,7 @@ CHubController::HandlePnp(
{ {
DPRINT("[USBLIB] HandlePnp IRP_MN_START_DEVICE\n"); DPRINT("[USBLIB] HandlePnp IRP_MN_START_DEVICE\n");
// //
// register device interface // register device interface
// //
Status = SetDeviceInterface(TRUE); Status = SetDeviceInterface(TRUE);
break; break;
@ -776,7 +777,7 @@ CHubController::HandlePower(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleIsochronousTransfer( CHubController::HandleIsochronousTransfer(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
PUSBDEVICE UsbDevice; PUSBDEVICE UsbDevice;
@ -825,7 +826,7 @@ CHubController::HandleIsochronousTransfer(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleBulkOrInterruptTransfer( CHubController::HandleBulkOrInterruptTransfer(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
PUSBDEVICE UsbDevice; PUSBDEVICE UsbDevice;
@ -889,7 +890,7 @@ CHubController::HandleBulkOrInterruptTransfer(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleClassOther( CHubController::HandleClassOther(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
NTSTATUS Status = STATUS_NOT_IMPLEMENTED; NTSTATUS Status = STATUS_NOT_IMPLEMENTED;
@ -1032,7 +1033,7 @@ CHubController::HandleClassOther(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleSelectConfiguration( CHubController::HandleSelectConfiguration(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
PUSBDEVICE UsbDevice; PUSBDEVICE UsbDevice;
@ -1110,7 +1111,7 @@ CHubController::HandleSelectConfiguration(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleSelectInterface( CHubController::HandleSelectInterface(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
PUSBDEVICE UsbDevice; PUSBDEVICE UsbDevice;
@ -1160,7 +1161,7 @@ CHubController::HandleSelectInterface(
//----------------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleGetStatusFromDevice( CHubController::HandleGetStatusFromDevice(
IN OUT PIRP Irp, IN OUT PIRP Irp,
PURB Urb) PURB Urb)
{ {
PUSHORT DeviceStatus; PUSHORT DeviceStatus;
@ -1381,7 +1382,52 @@ CHubController::HandleClassDevice(
break; break;
} }
default: default:
DPRINT1("[USBLIB] HandleClassDevice Type %x not implemented\n", Urb->UrbControlVendorClassRequest.Request); {
//
// check if this is a valid usb device handle
//
if (!ValidateUsbDevice(PUSBDEVICE(Urb->UrbHeader.UsbdDeviceHandle)))
{
DPRINT1("HandleClassDevice invalid device handle %p\n", Urb->UrbHeader.UsbdDeviceHandle);
//
// invalid device handle
//
return STATUS_DEVICE_NOT_CONNECTED;
}
//
// get device
//
UsbDevice = PUSBDEVICE(Urb->UrbHeader.UsbdDeviceHandle);
//
// generate setup packet
//
CtrlSetup.bmRequestType.B = 0;
CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE;
CtrlSetup.bmRequestType._BM.Type = BMREQUEST_CLASS;
CtrlSetup.bRequest = Urb->UrbControlVendorClassRequest.Request;
CtrlSetup.wValue.W = Urb->UrbControlVendorClassRequest.Value;
CtrlSetup.wIndex.W = Urb->UrbControlVendorClassRequest.Index;
CtrlSetup.wLength = Urb->UrbControlVendorClassRequest.TransferBufferLength;
if (Urb->UrbControlVendorClassRequest.TransferFlags & USBD_TRANSFER_DIRECTION_IN)
{
//
// data direction is device to host
//
CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST;
}
//
// submit setup packet
//
Status = UsbDevice->SubmitSetupPacket(&CtrlSetup, Urb->UrbControlDescriptorRequest.TransferBufferLength, Urb->UrbControlDescriptorRequest.TransferBuffer);
ASSERT(Status == STATUS_SUCCESS);
break;
}
} }
return Status; return Status;
@ -1740,6 +1786,70 @@ CHubController::HandleClassEndpoint(
return Status; return Status;
} }
//-----------------------------------------------------------------------------------------
NTSTATUS
CHubController::HandleVendorDevice(
IN OUT PIRP Irp,
IN OUT PURB Urb)
{
NTSTATUS Status = STATUS_NOT_IMPLEMENTED;
PUSBDEVICE UsbDevice;
USB_DEFAULT_PIPE_SETUP_PACKET CtrlSetup;
DPRINT("CHubController::HandleVendorDevice Request %x\n", Urb->UrbControlVendorClassRequest.Request);
//
// sanity check
//
PC_ASSERT(Urb->UrbHeader.UsbdDeviceHandle);
//
// check if this is a valid usb device handle
//
if (!ValidateUsbDevice(PUSBDEVICE(Urb->UrbHeader.UsbdDeviceHandle)))
{
DPRINT1("[USBLIB] HandleVendorDevice invalid device handle %p\n", Urb->UrbHeader.UsbdDeviceHandle);
//
// invalid device handle
//
return STATUS_DEVICE_NOT_CONNECTED;
}
//
// get device
//
UsbDevice = PUSBDEVICE(Urb->UrbHeader.UsbdDeviceHandle);
//
// initialize setup packet
//
CtrlSetup.bmRequestType.B = 0;
CtrlSetup.bmRequestType._BM.Recipient = BMREQUEST_TO_DEVICE;
CtrlSetup.bmRequestType._BM.Type = BMREQUEST_VENDOR;
CtrlSetup.bRequest = Urb->UrbControlVendorClassRequest.Request;
CtrlSetup.wValue.W = Urb->UrbControlVendorClassRequest.Value;
CtrlSetup.wIndex.W = Urb->UrbControlVendorClassRequest.Index;
CtrlSetup.wLength = Urb->UrbControlVendorClassRequest.TransferBufferLength;
if (Urb->UrbControlVendorClassRequest.TransferFlags & USBD_TRANSFER_DIRECTION_IN)
{
//
// data direction is device to host
//
CtrlSetup.bmRequestType._BM.Dir = BMREQUEST_DEVICE_TO_HOST;
}
//
// issue request
//
Status = UsbDevice->SubmitSetupPacket(&CtrlSetup, Urb->UrbControlVendorClassRequest.TransferBufferLength, Urb->UrbControlVendorClassRequest.TransferBuffer);
PC_ASSERT(NT_SUCCESS(Status));
return Status;
}
//-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleSyncResetAndClearStall( CHubController::HandleSyncResetAndClearStall(
IN OUT PIRP Irp, IN OUT PIRP Irp,
@ -1780,7 +1890,7 @@ CHubController::HandleSyncResetAndClearStall(
// //
DPRINT1("[USBLIB] failed to reset pipe %x\n", Status); DPRINT1("[USBLIB] failed to reset pipe %x\n", Status);
} }
// //
// get endpoint descriptor // get endpoint descriptor
@ -1812,6 +1922,7 @@ CHubController::HandleSyncResetAndClearStall(
return Status; return Status;
} }
//-----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CHubController::HandleAbortPipe( CHubController::HandleAbortPipe(
IN OUT PIRP Irp, IN OUT PIRP Irp,
@ -2098,6 +2209,9 @@ CHubController::HandleDeviceControl(
case URB_FUNCTION_CLASS_ENDPOINT: case URB_FUNCTION_CLASS_ENDPOINT:
Status = HandleClassEndpoint(Irp, Urb); Status = HandleClassEndpoint(Irp, Urb);
break; break;
case URB_FUNCTION_VENDOR_DEVICE:
Status = HandleVendorDevice(Irp, Urb);
break;
default: default:
DPRINT1("[USBLIB] IOCTL_INTERNAL_USB_SUBMIT_URB Function %x NOT IMPLEMENTED\n", Urb->UrbHeader.Function); DPRINT1("[USBLIB] IOCTL_INTERNAL_USB_SUBMIT_URB Function %x NOT IMPLEMENTED\n", Urb->UrbHeader.Function);
break; break;
@ -2167,7 +2281,7 @@ CHubController::HandleDeviceControl(
// //
// after IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO is delivered, the usbhub driver // after IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO is delivered, the usbhub driver
// requests this ioctl to deliver the number of presents. // requests this ioctl to deliver the number of presents.
if (IoStack->Parameters.Others.Argument1) if (IoStack->Parameters.Others.Argument1)
{ {
@ -3097,7 +3211,7 @@ USBHI_GetExtendedHubInformation(
// //
// sanity checks // sanity checks
// //
PC_ASSERT(HubInformationBuffer); PC_ASSERT(HubInformationBuffer);
PC_ASSERT(HubInformationBufferLength == sizeof(USB_EXTHUB_INFORMATION_0)); PC_ASSERT(HubInformationBufferLength == sizeof(USB_EXTHUB_INFORMATION_0));
PC_ASSERT(LengthReturned); PC_ASSERT(LengthReturned);
@ -3427,8 +3541,8 @@ USBDI_IsDeviceHighSpeed(
NTSTATUS NTSTATUS
USB_BUSIFFN USB_BUSIFFN
USBDI_EnumLogEntry( USBDI_EnumLogEntry(
PVOID BusContext, PVOID BusContext,
ULONG DriverTag, ULONG DriverTag,
ULONG EnumTag, ULONG EnumTag,
ULONG P1, ULONG P1,
ULONG P2) ULONG P2)

View file

@ -76,7 +76,7 @@ protected:
LONG m_Ref; LONG m_Ref;
PHUBCONTROLLER m_HubController; PHUBCONTROLLER m_HubController;
PUSBHARDWAREDEVICE m_Device; PUSBHARDWAREDEVICE m_Device;
PVOID m_Parent; PVOID m_Parent;
ULONG m_Port; ULONG m_Port;
UCHAR m_DeviceAddress; UCHAR m_DeviceAddress;
PVOID m_Data; PVOID m_Data;
@ -103,9 +103,9 @@ CUSBDevice::QueryInterface(
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CUSBDevice::Initialize( CUSBDevice::Initialize(
IN PHUBCONTROLLER HubController, IN PHUBCONTROLLER HubController,
IN PUSBHARDWAREDEVICE Device, IN PUSBHARDWAREDEVICE Device,
IN PVOID Parent, IN PVOID Parent,
IN ULONG Port, IN ULONG Port,
IN ULONG PortStatus) IN ULONG PortStatus)
{ {
@ -309,7 +309,7 @@ CUSBDevice::SetDeviceAddress(
UCHAR OldAddress; UCHAR OldAddress;
UCHAR Index; UCHAR Index;
DPRINT1("CUSBDevice::SetDeviceAddress Address %d\n", DeviceAddress); DPRINT1("CUSBDevice::SetDeviceAddress> Address %x\n", DeviceAddress);
CtrlSetup = (PUSB_DEFAULT_PIPE_SETUP_PACKET)ExAllocatePoolWithTag(NonPagedPool, sizeof(USB_DEFAULT_PIPE_SETUP_PACKET), TAG_USBLIB); CtrlSetup = (PUSB_DEFAULT_PIPE_SETUP_PACKET)ExAllocatePoolWithTag(NonPagedPool, sizeof(USB_DEFAULT_PIPE_SETUP_PACKET), TAG_USBLIB);
if (!CtrlSetup) if (!CtrlSetup)
@ -332,7 +332,7 @@ CUSBDevice::SetDeviceAddress(
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
// failed to set device address // failed to set device address
DPRINT1("CUSBDevice::SetDeviceAddress> failed to set device address with %x Address %x\n", Status, DeviceAddress); DPRINT1("CUSBDevice::SetDeviceAddress> failed to set device address with %lx Address %x\n", Status, DeviceAddress);
return Status; return Status;
} }
@ -349,7 +349,7 @@ CUSBDevice::SetDeviceAddress(
Status = CreateDeviceDescriptor(); Status = CreateDeviceDescriptor();
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
DPRINT1("CUSBbDevice::SetDeviceAddress> failed to retrieve device descriptor with device address set Error %x\n", Status); DPRINT1("CUSBDevice::SetDeviceAddress> failed to retrieve device descriptor with device address set Error %lx\n", Status);
// return error status // return error status
return Status; return Status;
} }
@ -360,7 +360,7 @@ CUSBDevice::SetDeviceAddress(
m_DeviceDescriptor.bNumConfigurations == 0) m_DeviceDescriptor.bNumConfigurations == 0)
{ {
// failed to retrieve device descriptor // failed to retrieve device descriptor
DPRINT1("CUSBbDevice::SetDeviceAddress> device returned bogus device descriptor\n"); DPRINT1("CUSBDevice::SetDeviceAddress> device returned bogus device descriptor\n");
DumpDeviceDescriptor(&m_DeviceDescriptor); DumpDeviceDescriptor(&m_DeviceDescriptor);
// return error status // return error status
@ -430,7 +430,7 @@ CUSBDevice::CommitIrp(
// //
// no queue, wtf? // no queue, wtf?
// //
DPRINT1("CUSBDevice::CommitUrb> no queue / dma !!!\n"); DPRINT1("CUSBDevice::CommitIrp> no queue / dma !!!\n");
return STATUS_UNSUCCESSFUL; return STATUS_UNSUCCESSFUL;
} }
@ -443,7 +443,7 @@ CUSBDevice::CommitIrp(
// //
// failed to build request // failed to build request
// //
DPRINT1("CUSBDevice::CommitSetupPacket> CreateUSBRequest failed with %x\n", Status); DPRINT1("CUSBDevice::CommitIrp> CreateUSBRequest failed with %lx\n", Status);
return Status; return Status;
} }
@ -466,7 +466,7 @@ CUSBDevice::CommitIrp(
// //
// failed to add request // failed to add request
// //
DPRINT1("CUSBDevice::CommitSetupPacket> failed add request to queue with %x\n", Status); DPRINT1("CUSBDevice::CommitIrp> failed add request to queue with %lx\n", Status);
Request->Release(); Request->Release();
return Status; return Status;
} }
@ -502,12 +502,13 @@ CUSBDevice::SubmitIrp(
return Status; return Status;
} }
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CUSBDevice::CommitSetupPacket( CUSBDevice::CommitSetupPacket(
IN PUSB_DEFAULT_PIPE_SETUP_PACKET Packet, IN PUSB_DEFAULT_PIPE_SETUP_PACKET Packet,
IN OPTIONAL PUSB_ENDPOINT EndpointDescriptor, IN OPTIONAL PUSB_ENDPOINT EndpointDescriptor,
IN ULONG BufferLength, IN ULONG BufferLength,
IN OUT PMDL Mdl) IN OUT PMDL Mdl)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -669,7 +670,7 @@ CUSBDevice::CreateDeviceDescriptor()
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CUSBDevice::GetConfigurationDescriptor( CUSBDevice::GetConfigurationDescriptor(
IN UCHAR ConfigurationIndex, IN UCHAR ConfigurationIndex,
IN USHORT BufferSize, IN USHORT BufferSize,
IN PVOID Buffer) IN PVOID Buffer)
{ {
@ -873,8 +874,8 @@ CUSBDevice::DumpConfigurationDescriptor(PUSB_CONFIGURATION_DESCRIPTOR Configurat
//---------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------
NTSTATUS NTSTATUS
CUSBDevice::SubmitSetupPacket( CUSBDevice::SubmitSetupPacket(
IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket, IN PUSB_DEFAULT_PIPE_SETUP_PACKET SetupPacket,
IN OUT ULONG BufferLength, IN OUT ULONG BufferLength,
OUT PVOID Buffer) OUT PVOID Buffer)
{ {
NTSTATUS Status; NTSTATUS Status;
@ -965,7 +966,7 @@ CUSBDevice::BuildInterfaceDescriptor(
if (EndpointDescriptor->bLength == 0 || EndpointDescriptor->bDescriptorType == USB_INTERFACE_DESCRIPTOR_TYPE) if (EndpointDescriptor->bLength == 0 || EndpointDescriptor->bDescriptorType == USB_INTERFACE_DESCRIPTOR_TYPE)
{ {
// bogus configuration descriptor // bogus configuration descriptor
DPRINT1("[USBEHCI] Bogus descriptor found in InterfaceNumber %x Alternate %x EndpointIndex %x bLength %x bDescriptorType %x\n", InterfaceDescriptor->bInterfaceNumber, InterfaceDescriptor->bAlternateSetting, PipeIndex, DPRINT1("[USBLIB] Bogus descriptor found in InterfaceNumber %x Alternate %x EndpointIndex %x bLength %x bDescriptorType %x\n", InterfaceDescriptor->bInterfaceNumber, InterfaceDescriptor->bAlternateSetting, PipeIndex,
EndpointDescriptor->bLength, EndpointDescriptor->bDescriptorType); EndpointDescriptor->bLength, EndpointDescriptor->bDescriptorType);
// failed // failed
@ -1037,7 +1038,7 @@ CUSBDevice::SelectConfiguration(
if (!Found) if (!Found)
{ {
DPRINT1("[USBUHCI] invalid configuration value %lu\n", ConfigurationDescriptor->bConfigurationValue); DPRINT1("[USBLIB] invalid configuration value %lu\n", ConfigurationDescriptor->bConfigurationValue);
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }
@ -1059,13 +1060,13 @@ CUSBDevice::SelectConfiguration(
if (!ConfigurationDescriptor) if (!ConfigurationDescriptor)
{ {
// unconfigure request // unconfigure request
DPRINT1("CUsbDevice::SelectConfiguration Unconfigure Request Status %x\n", Status); DPRINT1("CUSBDevice::SelectConfiguration Unconfigure Request Status %x\n", Status);
m_ConfigurationIndex = 0; m_ConfigurationIndex = 0;
return Status; return Status;
} }
// informal debug print // informal debug print
DPRINT1("CUsbDevice::SelectConfiguration New Configuration %x Old Configuration %x Result %x\n", ConfigurationIndex, m_ConfigurationIndex, Status); DPRINT1("CUSBDevice::SelectConfiguration New Configuration %x Old Configuration %x Result %x\n", ConfigurationIndex, m_ConfigurationIndex, Status);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
// //
@ -1161,7 +1162,7 @@ CUSBDevice::SelectInterface(
if (!Found) if (!Found)
{ {
// invalid handle passed // invalid handle passed
DPRINT1("[USBEHCI] Invalid configuration handle passed %p\n", ConfigurationHandle); DPRINT1("[USBLIB] Invalid configuration handle passed %p\n", ConfigurationHandle);
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }