Windows.Devices.HumanInterfaceDevice Spazio dei nomi

Questo spazio dei nomi consente all'app UWP di accedere ai dispositivi che supportano il protocollo HID (Human Interface Device ).

Supporto dei dispositivi

Questo spazio dei nomi supporta la maggior parte degli HID. Tuttavia, non fornisce l'accesso alle raccolte di applicazioni di primo livello (TLCs) rappresentate dagli utilizzi seguenti.

Utilizzi inaccessibili.

UsagePage UsageIds
HID_USAGE_PAGE_UNDEFINED (0x00) Tutti
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) Tutti
HID_USAGE_PAGE_CONSUMER (0x0C) Tutti
HID_USAGE_PAGE_DIGITIZER (0x0D) Tutti
HID_USAGE_PAGE_SENSOR (0x20) Tutti
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59) HID_USAGE_LAMPARRAY (0x01)

Funzionalità del dispositivo dell'interfaccia umana

Un'app UWP che accede a un HID deve includere dati specifici sulle funzionalità del dispositivo nel nodo delle funzionalità del manifesto. Questi dati identificano il dispositivo e il relativo scopo (o funzione). Si noti che alcuni dispositivi possono avere più funzioni.

Dal Windows 10, versione 1809 (aggiornamento di ottobre 2018)

<DeviceCapability Name="humanInterfaceDevice"/>

Se la destinazione di un dispositivo di telefonia HID (UsagePage===0x0B), è necessario specificare anche la funzionalità hidTelephony aggiuntiva.

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

Prima Windows 10, versione 1809 (aggiornamento di ottobre 2018)

Dal 1809, il ProductId VendorId/ e il tipo di funzione non devono più essere specificati e verranno ignorati nei sistemi più recenti. Se la destinazione dei sistemi è precedente alla versione 1809, vedere di seguito.

  • <DeviceCapability>: l'attributo Name deve essere humanInterfaceDevice.

    • <Dispositivo>: l'attributo Id deve specificare l'identificatore del dispositivo. Questo elemento può specificare una combinazione di ID fornitore (vid) e ID prodotto (pid); oppure può specificare una stringa generica any. Inoltre, Device Id può contenere una stringa di provider facoltativa di usb o bluetooth.

      • <Funzione>: l'attributo Type specifica la funzione device. Questo elemento contiene uno o più valori di utilizzo HID. Questi valori sono costituiti da e da , UsagePage ognuno UsageIddei quali è un valore esadecimale a 16 bit.

Nei seguenti dati di utilizzo definiti dal fornitore, il dispositivo viene identificato dalla combinazione id fornitore e ID prodotto .

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

Il codice seguente è identico al primo con l'eccezione della stringa usb del provider aggiuntiva nell'elemento Device Id .

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

Nei dati del dispositivo di gioco seguenti non sono presenti ID fornitore e ID prodotto.

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

Nei seguenti dati del joystick e del game pad non sono presenti ID fornitore e ID prodotto

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

Risoluzione dei problemi

  • Verificare che la funzionalità HID (humanInterfaceDevice) sia presente nel manifesto dell'applicazione. Se un dispositivo di telefonia, assicurarsi che sia inclusa anche la hidTelephony funzionalità.
  • Verificare che all'utente sia stata concessa l'autorizzazione per l'utilizzo degli HID da parte dell'applicazione.
  • Verificare che il tipo di dispositivo non sia designato come inaccessibile.
  • I dispositivi interni del computer (DEVPKEY_Device_InLocalMachineContainer == TRUE) in genere non sono accessibili a meno che non vengano eseguiti in uno SKU con modalità incorporata e lowLevelDevices funzionalità.
  • I dispositivi con stack che contengono driver di filtro superiore/inferiore non sono in genere accessibili. Questi vengono talvolta aggiunti da terze parti per abilitare funzionalità aggiuntive per l'hardware personalizzato.
    • La restrizione del dispositivo è parzialmente determinata durante hidclass.sys l'enumerazione del dispositivo, che può impostare la proprietà DEVPKEY_DeviceInterface_RestrictedTRUE dell'interfaccia del dispositivo su nell'interfaccia GUID_DEVINTERFACE_HID del dispositivo HID in base alla presenza di filtri di dispositivo/classe.
    • La presenza di driver UpperFilter LowerFilter/ può essere determinata usando DeviceManager cercandoUpperFilters le proprietà e .LowerFilters
    • La presenza di driverUpperFilter LowerFilter/ della classe HIDpuò essere determinata tramite DeviceManager cercando Class upper filters proprietà e Class lower filters .
    • È possibile controllare le proprietà dell'interfaccia del dispositivo chiamando CM_Get_Device_Interface_Property dove pszDeviceInterface è la stessa stringa che verrebbe passata a FromIdAsync.
  • Queste restrizioni possono essere ignorate quando si crea un dispositivo personalizzato usando il driver-sviluppatore per creare un'app di supporto hardware

Classi

HidBooleanControl

Rappresenta un semplice controllo booleano in un dispositivo HID che restituisce valori on/off. Un esempio è la luce LED su una tastiera.

HidBooleanControlDescription

Descrive un controllo booleano per un determinato dispositivo HID.

HidCollection

Recupera le informazioni sulla raccolta per un gruppo di controlli correlati.

Il protocollo HID usa le raccolte per raggruppare un set di controlli simili l'uno all'altro o correlati alla prossimità fisica o operativa.

HidDevice

Rappresenta una raccolta di primo livello e il dispositivo corrispondente.

HidFeatureReport

Rappresenta un report delle funzionalità HID.

I report sulle funzionalità vengono rilasciati sia dal dispositivo che dall'host. I report sulle funzionalità dei dispositivi descrivono le funzionalità e le impostazioni predefinite per un host. Gli host generano report sulle funzionalità per effettuare richieste del dispositivo.

HidInputReport

Rappresenta un report di input HID.

I dispositivi generano report di input per descrivere le modifiche dello stato, l'input dell'utente e altri dati specifici del dispositivo. Ad esempio, un dispositivo da tastiera HID usa un report di input per segnalare una pressione del tasto. Un sensore di presenza HID usa un report di input per segnalare un evento di rilevamento della presenza.

HidInputReportReceivedEventArgs

Rappresenta gli argomenti inviati dall'API HID come parte di un evento di report di input.

HidNumericControl

Rappresenta un controllo numerico in un dispositivo HID che restituisce un intervallo di valori. Un esempio è il controllo volume su un altoparlante.

HidNumericControlDescription

Descrive un controllo numerico per un determinato dispositivo HID.

HidOutputReport

Rappresenta un report di output HID.

Gli host generano report di output per richiedere modifiche nel dispositivo. Ad esempio, un host potrebbe eseguire una richiesta a una tastiera per attivare o disattivare un LED.

Enumerazioni

HidCollectionType

Identifica la relazione che definisce un raggruppamento di controlli nel dispositivo.

Le raccolte sono un modo per raggruppare un set di controlli simili l'uno all'altro; oppure sono correlati da prossimità fisica o operativa.

HidReportType

Specifica un tipo di report HID.

Vedi anche