locked
Specifying USB HID Usage Page 0x000C causes "Value is blocked, and not allowed on this bus (0x80073cf6)" error on WinRT 8.1

    Question

  • While trying to interface to a third-party USB device that uses custom packets on USB HID Usage Page 0x000C, I get the following error from the compiler:

    "Error 1 Error : DEP0700 : Registration of the app failed. The Appx package's manifest is invalid.:
    Cannot register package bcce7da3-5646-4021-bc07-48d7bf894610 because of a problem with Function element usage:000C 0001: Value is blocked, and not allowed on this bus (0x80073cf6) Windows8.1HIDDemo"

    My app manifest Capabilities section looks like this:

        <m2:DeviceCapability Name="humaninterfacedevice">
          <m2:Device Id="vidpid:FAFA 00F0 usb">
            <m2:Function Type="usage:000C 0001"/>
          </m2:Device>
        </m2:DeviceCapability>

    Is there any way to override this security check (this is for an in-house demo, so I don't need to publish to the Windows Store)? I am talking to the manufacturer about a custom firmware for their device, but they are not very excited about that. This was also apparently a problem with the Dream Cheeky "Thunder" missile launcher demo as well. There was a previous huge thread about Custom USB drivers using WDF to get around this problem, but apparently it wasn't available for ARM processors at the time.

    Alternatively, is it possible to use raw USB comms in the "Windows.Devices.Usb" namespace to talk to a USB HID device directly? It seems like such a painful workaround though, when there is an already-existing HID class.


    • Edited by Foz2 Thursday, November 7, 2013 5:46 PM
    Thursday, November 7, 2013 5:45 PM

All replies

  • Trying to pursue a different route, I thought that I may be able to do raw USB access using "Windows.Devices.Usb" rather than "Windows.Devices.HumanInterfaceDevice". Unfortunately, Windows RT won't allow me to declare classId 3 (i.e. HID) with direct USB access (presumably because there is already a specialized HID class, and therefore, why would anyone want to do direct USB access instead of using the NSA-level security HID class that won't even let me send a custom packet to a consumer HID device). Here is the DeviceCapability part of the app manifest:

        <m2:DeviceCapability Name="usb">
          <m2:Device Id="vidpid:FAFA 00F0">
            <m2:Function Type="classId:03 * *"/>
          </m2:Device>
        </m2:DeviceCapability>

    which gives the following error:

    Error      1             Error : DEP0700 : Registration of the app failed. The Appx package's manifest is invalid.: Cannot register package bcce7da3-5646-4021-bc07-48d7bf894610 because of a problem with Function element classId:03 * *: Value is blocked, and not allowed on this bus (0x80073cf6) Windows8.1HIDDemo

    Friday, November 8, 2013 4:12 AM
  • That particular top-level collection usage (000C) is blocked and you will not be able to access your device. This behavior is documented on MSDN - http://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.humaninterfacedevice.aspxand there is no way to override it, nor will you be able to use USB directly in this situation.

    What kind of device is this ? Any reason why it is being described as a Consumer device ?

    Wednesday, November 27, 2013 2:21 AM