Windows.Devices.HumanInterfaceDevice Spazio dei nomi
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 ) |
- I dispositivi da tastiera e mouse sono dispositivi riservati del sistema
- Gli HID LampArray possono essere enumerati con HidDevice.GetDeviceSelector , ma devono essere create istanze con LampArray.FromIdAsync
- Gli HID del sensore possono essere enumerati con HidDevice.GetDeviceSelector , ma devono essere create istanze con il rispettivo dispositivo Windows.Devices.Sensors (ad esempio LightSensor.FromIdAsync)
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>: l'attributo Name deve essere
humanInterfaceDevice
.
<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 diusb
obluetooth
.- <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
ognunoUsageId
dei quali è un valore esadecimale a 16 bit.
- <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 ,
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 lahidTelephony
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.
- Gli HID inaccessibili possono comunque essere enumerati da DeviceInformation.FindAllAsync(), ma non possono essere aperti da HumanInterfaceDevice.FromIdAsync(). L'attemping per aprire un dispositivo di questo tipo genererà un'eccezione o restituirà
null
.
- Gli HID inaccessibili possono comunque essere enumerati da DeviceInformation.FindAllAsync(), ma non possono essere aperti da HumanInterfaceDevice.FromIdAsync(). L'attemping per aprire un dispositivo di questo tipo genererà un'eccezione o restituirà
- 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 elowLevelDevices
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_Restricted
TRUE
dell'interfaccia del dispositivo su nell'interfacciaGUID_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 cercando
UpperFilters
le proprietà e .LowerFilters
- La presenza di driverUpperFilter LowerFilter/ della classe HIDpuò essere determinata tramite DeviceManager cercando
Class upper filters
proprietà eClass lower filters
. - È possibile controllare le proprietà dell'interfaccia del dispositivo chiamando
CM_Get_Device_Interface_Property
dovepszDeviceInterface
è la stessa stringa che verrebbe passata a FromIdAsync.
- La restrizione del dispositivo è parzialmente determinata durante
- 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. |