Issue with IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST

Hi,
Our company is into developing USB keyboards with custom functionality. We have HID Mini drivers with usage tables for custom usages. In one of the keyboards, we are getting IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST message and after this application is not detecting our HID device or sending any HID commands. The same driver is working fine with another model. Application is from another vendor, in which we don’t have much control or access to source code. Our driver is based on the hidusbfx2 sample in WDK.

I am not sure anything different need to be done in this IOCTL handler or in any of the power management routines. Any pointers to address this issue will be of great help.

thanks
Praveen


The IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST control code is the IOCTL of the idle notification request IRP that HIDClass sends to HID mini drivers, such as HIDUSB, to inform the bus driver that the device is now idle.
>

HIDclass will power down the device and expects that you arm the device for wake such that it can wake itself up when used. If you don’t want to idle out, don’t report wakecapable. I think you must also not set a reg key in device parameters, but I am not sure.

I have to wonder though why you need a custom miniport. The in box miniport fully supports custom usages and custom usage pages. The HID spec fully allows for it.

d
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Wednesday, June 14, 2017 10:08 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Issue with IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST

Hi,
Our company is into developing USB keyboards with custom functionality. We have HID Mini drivers with usage tables for custom usages. In one of the keyboards, we are getting IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST message and after this application is not detecting our HID device or sending any HID commands. The same driver is working fine with another model. Application is from another vendor, in which we don’t have much control or access to source code. Our driver is based on the hidusbfx2 sample in WDK.

I am not sure anything different need to be done in this IOCTL handler or in any of the power management routines. Any pointers to address this issue will be of great help.

thanks
Praveen


NTDEV is sponsored by OSR

Visit the list online at: https:

MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at https:

To unsubscribe, visit the List Server section of OSR Online at https:</https:></https:></https:>

HI Doron,

Thank you for the reply.
I have set EnhancedPowerManagementEnabled=0 and IOCTL_HID_SEND_IDLE_NOTIFICATION_REQUEST has stopped coming to my driver.

But there is not much deference in the app behavior. It is not recognizing the usage reported by my mini driver in one of the device models. Only difference i can see in the HW is, Remote Wakeup is set in the Configuration descriptor of the working device, where as this is not set in the other. Not sure whether this can affect the app behavior though.

I think the reason for using HID Mini driver is to minimize the changes in the HW/firmware, and use same HW with different usages exposed through the mini driver.

thanks
Praveen