USB HID USAGE_PAGE (LEDs) events dont' seem to be sent to the HID device by windows 10 RRS feed

  • Question

  • Hello,

    Please point me to the correct forum if this is offtopic here.


    I'm toying with a simple USB HID interface that allows the user to Mute and Unmute the audio on the connected Windows 10 desktop by pressing the button, and the current mute state would be indicated on the device via LED.

    Muting and unmuting works fine.

    Brief Problem Description:

    The problem is that windows does not seem to send USAGE_PAGE(LEDs) notifications to the device when the state of mute changes.


    With the HID descriptor below the button (USAGE (Mute) under USAGE_PAGE(Consumer Devices))  successfully mutes and unmutes audio; however the indication of the current mute state requested via (USAGE_PAGE(LEDS)) does not seem to receive reports from Windows when I mute and unmute audio - the usb read on an endpoint waits forever.

    Moreover, if I programmatically send the expected HID report to the device (via a short test program via SetupAPI) it toggle indication correctly, so the connectivity issues are ruled out.


    I'm suspecting my HID profile might not be recognized properly by windows - are there some other requirements (logical grouping/formatting/etc) to receive USAGE_PAGE(LEDs) notifications from windows?

    I could not find any relevant information neither in HID whitepapers nor here in MSDN; but I saw a few forum posts here and there that claim that USAGE_PAGE(LEDs) is not implemented/supported by windows 10 hid driver.

    I'll appreciate a link to documentation or any suggestion.


    HID descriptor below

        0x05, 0x0c,                    // USAGE_PAGE (Consumer Devices)
        0x09, 0x01,                    // USAGE (Consumer Control)
        0xa1, 0x01,                    // COLLECTION (Application)
        0x15, 0x00,                    //   LOGICAL_MINIMUM (0)
        0x25, 0x01,                    //   LOGICAL_MAXIMUM (1)
        0x09, 0xe2,                    //   USAGE (Mute)
        0x95, 0x01,                    //   REPORT_COUNT (1)
        0x81, 0x06,                    //   INPUT (Data,Var,Rel)
        0x95, 0x05,                    //   REPORT_COUNT (7)
        0x81, 0x07,                    //   INPUT (Cnst,Var,Rel)
        0x05, 0x08,                    //   USAGE_PAGE (LEDs)
        0x09, 0x09,                    //   USAGE (Mute)
        0x75, 0x01,                    //   REPORT_SIZE (1)
        0x95, 0x01,                    //   REPORT_COUNT (1)
        0x91, 0x02,                    //   OUTPUT (Data,Var,Abs)
        0x75, 0x01,                    //   REPORT_SIZE (1)
        0x95, 0x07,                    //   REPORT_COUNT (7)
        0x91, 0x03,                    //   OUTPUT (Cnst,Var,Abs)
        0xc0                           // END_COLLECTION

    Friday, February 26, 2016 9:18 AM


  • I am 99% sure the OS is not aware of the LED usages, just the audio (mute, unmute) usages

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Friday, February 26, 2016 5:27 PM