}
-NTSTATUS
+VOID
Hid_GetProtocol(
IN PDEVICE_OBJECT DeviceObject)
{
DeviceExtension = (PHID_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
HidDeviceExtension = (PHID_USB_DEVICE_EXTENSION)DeviceExtension->MiniDeviceExtension;
+ if (HidDeviceExtension->InterfaceInfo->SubClass != 0x1)
+ {
+ //
+ // device does not support the boot protocol
+ //
+ return;
+ }
+
+
//
// allocate urb
//
//
// no memory
//
- return STATUS_INSUFFICIENT_RESOURCES;
+ return;
}
//
ExFreePool(Urb);
//
- // print status
- //
- DPRINT("Status %x Protocol %x\n", Status, Protocol[0] & 0xFF);
-
+ // boot protocol active 0x00 disabled 0x1
//
- // assert when boot protocol is still active
- //
- ASSERT(Protocol[0] == 0x1);
- return Status;
+ if (Protocol[0] != 0x1)
+ {
+ if (Protocol[0] == 0x00)
+ {
+ DPRINT1("[HIDUSB] Need to disable boot protocol!\n");
+ }
+ else
+ {
+ DPRINT1("[HIDUSB] Unexpected protocol value %x\n", Protocol[0] & 0xFF);
+ }
+ }
}
NTSTATUS
//
Hid_SetIdle(DeviceObject);
- Hid_GetProtocol(DeviceObject);
+ //
+ // get protocol
+ //
+ Hid_GetProtocol(DeviceObject);
//
// move to next descriptor