mirror of
https://github.com/reactos/reactos.git
synced 2024-07-11 23:25:09 +00:00
[HIDUSB]
- Check if boot procol is supported - Don't assert on boot protocol active See issue #6886 for more details. svn path=/trunk/; revision=55571
This commit is contained in:
parent
8b553a4ba7
commit
32157dc192
|
@ -1296,7 +1296,7 @@ Hid_SetIdle(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NTSTATUS
|
VOID
|
||||||
Hid_GetProtocol(
|
Hid_GetProtocol(
|
||||||
IN PDEVICE_OBJECT DeviceObject)
|
IN PDEVICE_OBJECT DeviceObject)
|
||||||
{
|
{
|
||||||
|
@ -1312,6 +1312,15 @@ Hid_GetProtocol(
|
||||||
DeviceExtension = (PHID_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
|
DeviceExtension = (PHID_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
|
||||||
HidDeviceExtension = (PHID_USB_DEVICE_EXTENSION)DeviceExtension->MiniDeviceExtension;
|
HidDeviceExtension = (PHID_USB_DEVICE_EXTENSION)DeviceExtension->MiniDeviceExtension;
|
||||||
|
|
||||||
|
if (HidDeviceExtension->InterfaceInfo->SubClass != 0x1)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// device does not support the boot protocol
|
||||||
|
//
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// allocate urb
|
// allocate urb
|
||||||
//
|
//
|
||||||
|
@ -1321,7 +1330,7 @@ Hid_GetProtocol(
|
||||||
//
|
//
|
||||||
// no memory
|
// no memory
|
||||||
//
|
//
|
||||||
return STATUS_INSUFFICIENT_RESOURCES;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -1356,15 +1365,19 @@ Hid_GetProtocol(
|
||||||
ExFreePool(Urb);
|
ExFreePool(Urb);
|
||||||
|
|
||||||
//
|
//
|
||||||
// print status
|
// boot protocol active 0x00 disabled 0x1
|
||||||
//
|
//
|
||||||
DPRINT("Status %x Protocol %x\n", Status, Protocol[0] & 0xFF);
|
if (Protocol[0] != 0x1)
|
||||||
|
{
|
||||||
//
|
if (Protocol[0] == 0x00)
|
||||||
// assert when boot protocol is still active
|
{
|
||||||
//
|
DPRINT1("[HIDUSB] Need to disable boot protocol!\n");
|
||||||
ASSERT(Protocol[0] == 0x1);
|
}
|
||||||
return Status;
|
else
|
||||||
|
{
|
||||||
|
DPRINT1("[HIDUSB] Unexpected protocol value %x\n", Protocol[0] & 0xFF);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
|
@ -1474,7 +1487,10 @@ Hid_PnpStart(
|
||||||
//
|
//
|
||||||
Hid_SetIdle(DeviceObject);
|
Hid_SetIdle(DeviceObject);
|
||||||
|
|
||||||
Hid_GetProtocol(DeviceObject);
|
//
|
||||||
|
// get protocol
|
||||||
|
//
|
||||||
|
Hid_GetProtocol(DeviceObject);
|
||||||
|
|
||||||
//
|
//
|
||||||
// move to next descriptor
|
// move to next descriptor
|
||||||
|
|
Loading…
Reference in a new issue