Windows.Devices.HumanInterfaceDevice Espacio de nombres

Este espacio de nombres proporciona a la aplicación para UWP acceso a los dispositivos que admiten el protocolo de dispositivo de interfaz humana (HID ).

Compatibilidad con dispositivos

Este espacio de nombres admite la mayoría de los HID. Sin embargo, no proporciona acceso a colecciones de aplicaciones de nivel superior (TLC) representadas por los siguientes usos.

Usos inaccesibles.

UsagePage UsageIds
HID_USAGE_PAGE_UNDEFINED (0x00) Todo
HID_USAGE_PAGE_GENERIC (0x01) HID_USAGE_GENERIC_MOUSE (0x02)
HID_USAGE_GENERIC_KEYBOARD (0x06)
HID_USAGE_GENERIC_KEYPAD (0x07)
HID_USAGE_GENERIC_SYSTEM_CTL (0x80)
HID_USAGE_PAGE_KEYBOARD (0x07) Todo
HID_USAGE_PAGE_CONSUMER (0x0C) Todo
HID_USAGE_PAGE_DIGITIZER (0x0D) Todo
HID_USAGE_PAGE_SENSOR (0x20) Todo
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59) HID_USAGE_LAMPARRAY (0x01)

Funcionalidades del dispositivo de interfaz humana

Una aplicación para UWP que acceda a un HID debe incluir datos específicos de funcionalidad del dispositivo en el nodo de funcionalidades de las funcionalidades de su manifiesto. Estos datos identifican el dispositivo y su propósito (o función). Tenga en cuenta que algunos dispositivos pueden tener varias funciones.

Desde Windows 10, versión 1809 (actualización de octubre de 2018)

<DeviceCapability Name="humanInterfaceDevice"/>

Si el destino es un dispositivo de telefonía HID (UsagePage==),0x0B también se debe especificar la funcionalidad hidTelephony adicional.

<DeviceCapability Name="humanInterfaceDevice"/>
<DeviceCapability Name="hidTelephony"/>

Antes de Windows 10, versión 1809 (actualización de octubre de 2018)

Desde 1809, ya no es necesario especificar vendorId/ProductId ni el tipo de función y se omitirán en los sistemas más recientes. Si el destino de los sistemas es anterior a 1809, consulte a continuación.

  • <DeviceCapability>: el atributo Name debe ser humanInterfaceDevice.

    • <Dispositivo>: el atributo Id debe especificar el identificador del dispositivo. Este elemento puede especificar una combinación id. de proveedor (vid) e id. de producto (pid); o bien, puede especificar una cadena anygenérica . Además, Device Id puede contener una cadena de proveedor opcional de usb o bluetooth.

      • <Función>: el atributo Type especifica la función del dispositivo. Este elemento contiene uno o varios valores de uso de HID. Estos valores constan de y UsagePage un elemento opcional UsageId, cada uno de los cuales son valores hexadecimales de 16 bits.

En los siguientes datos de uso definidos por el proveedor, el dispositivo se identifica mediante la combinación Id. de proveedor e Id. de producto .

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

Lo siguiente es idéntico al primero con la excepción de la cadena usb de proveedor adicional en el Device Id elemento .

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701 usb">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

En los siguientes datos de dispositivo de juegos no hay ningún id. de proveedor ni id. de producto.

<!-- Any gamepad device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

En el siguiente joystick y los datos del panel de juegos no hay ningún id. de proveedor ni id. de producto

<!-- Any generic gaming device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0004 *"/>
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

Solución de problemas

  • Compruebe que la funcionalidad HID (humanInterfaceDevice) está en el manifiesto de aplicación. Si un dispositivo de telefonía, asegúrese de que también se incluye la hidTelephony funcionalidad.
  • Compruebe que el usuario ha concedido permiso para que la aplicación use HID.
  • Compruebe que el tipo de dispositivo no es accesible.
  • Los dispositivos internos de la máquina (DEVPKEY_Device_InLocalMachineContainer == TRUE) no suelen ser accesibles a menos que se ejecuten en una SKU con el modo incrustado y lowLevelDevices la funcionalidad.
  • Los dispositivos con pilas que contienen controladores de filtro superior o inferior no suelen ser accesibles. A veces, se agregan por terceros para habilitar la funcionalidad adicional para el hardware personalizado.
    • La restricción de dispositivos se determina parcialmente durante hidclass.sys la enumeración de dispositivos, que puede establecer la propiedad TRUEDEVPKEY_DeviceInterface_Restricted de interfaz de dispositivo en en la interfaz GUID_DEVINTERFACE_HID de dispositivo HID en función de la presencia de filtros de dispositivo o clase.
    • La presencia de controladores UpperFilter/LowerFilter del dispositivo se puede determinar mediante DeviceManager buscando UpperFilters propiedades y LowerFilters .
    • La presencia de controladores UpperFilter/LowerFilter de la clase HID se puede determinar mediante DeviceManager buscando Class upper filters propiedades y Class lower filters .
    • Las propiedades de la interfaz de dispositivo se pueden inspeccionar llamando a CM_Get_Device_Interface_Property donde pszDeviceInterface es la misma cadena que se pasaría a FromIdAsync.
  • Estas restricciones se pueden omitir al realizar un dispositivo personalizado trabajando con el desarrollador de controladores para crear una aplicación de soporte técnico de hardware.

Clases

HidBooleanControl

Representa un control booleano simple en un dispositivo HID que devuelve valores activados y desactivados. Un ejemplo sería la luz LED en un teclado.

HidBooleanControlDescription

Describe un control booleano para un dispositivo HID determinado.

HidCollection

Recupera la información de la colección para un grupo de controles relacionados.

El protocolo HID usa colecciones para agrupar un conjunto de controles que son similares entre sí, o que están relacionados por proximidad física o operativa.

HidDevice

Representa una colección de nivel superior y el dispositivo correspondiente.

HidFeatureReport

Representa un informe de características HID.

Tanto el dispositivo como el host emiten informes de características. Los dispositivos emiten informes de características para describir sus funcionalidades y la configuración predeterminada para un host. Hospeda informes de características de problemas para realizar solicitudes del dispositivo.

HidInputReport

Representa un informe de entrada HID.

Los dispositivos emiten informes de entrada para describir los cambios de estado, la entrada del usuario y otros datos específicos del dispositivo. Por ejemplo, un dispositivo de teclado HID usaría un informe de entrada para indicar una pulsación de tecla. Un sensor de presencia HID usaría un informe de entrada para indicar un evento de detección de presencia.

HidInputReportReceivedEventArgs

Representa los argumentos que la API HID envía como parte de un evento de informe de entrada.

HidNumericControl

Representa un control numérico en un dispositivo HID que devuelve un intervalo de valores. Un ejemplo sería el control de volumen en un altavoz.

HidNumericControlDescription

Describe un control numérico para un dispositivo HID determinado.

HidOutputReport

Representa un informe de salida HID.

Hosts emite informes de salida para solicitar cambios en el dispositivo. Por ejemplo, un host podría emitir una solicitud a un teclado para activar o desactivar un LED.

Enumeraciones

HidCollectionType

Identifica la relación que define una agrupación de controles en el dispositivo.

Las colecciones son una manera de agrupar un conjunto de controles similares entre sí; o bien, están relacionados por proximidad física o operativa.

HidReportType

Especifica un tipo de informe HID.

Consulte también