Matrici di funzionalità di valore

Una matrice di funzionalità valore contiene informazioni sull'utilizzo dei valori supportati da una raccolta di livello superiore per un tipo specifico di report HID. Le informazioni sulle matrici di funzionalità valore di una raccolta sono contenute nella struttura HIDP_CAPS .

Un'applicazione in modalità utente o un driver in modalità kernel usa una delle routine di supporto HIDClass seguenti per ottenere informazioni sulle funzionalità dei pulsanti:

  • HidP_GetValueCaps restituisce una matrice di funzionalità valore che descrive tutti i valori contenuti in un tipo di report specificato dal chiamante.

  • HidP_GetSpecificValueCaps filtra le informazioni sulle funzionalità del valore restituite da una pagina di utilizzo specificata dal chiamante, dall'utilizzo, dalla raccolta di collegamenti e dal tipo di report.

Una matrice di funzionalità valore contiene HIDP_VALUE_CAPS strutture, ognuna delle quali descrive le informazioni seguenti sull'utilizzo o sull'intervallo di utilizzo HID:

  • Pagina di utilizzo per un intervallo di utilizzo o utilizzo

  • ID report del report che contiene il valore

  • ID di utilizzo o intervallo di utilizzo

  • Indica se un utilizzo è un utilizzo con alias

  • Informazioni sulla raccolta di collegamenti che contiene l'intervallo di utilizzo o di utilizzo

  • Dimensioni, in bit, di un valore e conteggio del report (ovvero il numero di singoli valori descritti dalla struttura)

  • Attributi di ogni valore, tra cui: se ha un valore Null, le relative unità ed esponenti e i relativi intervalli logici e fisici

  • Informazioni sui descrittori di stringa e sui designatori associati all'utilizzo o all'intervallo di utilizzo

  • Informazioni sugli indici di dati assegnati dal parser HID a un intervallo di utilizzo o di utilizzo

In generale, le condizioni seguenti sono contenute per tutti gli utilizzi descritti da una matrice di funzionalità di valore:

  • Ogni struttura di funzionalità rappresenta un utilizzo, un intervallo di utilizzo o una matrice di valori di utilizzo associata a un elemento principale della variabile. Gli elementi principali della matrice non sono supportati per i valori.

  • È possibile usare gli utilizzi con alias. Non è possibile eseguire l'aliasing di un intervallo di utilizzo. I valori con alias vengono collegati in una matrice di funzionalità valore nello stesso modo dei pulsanti con alias collegati in una matrice di funzionalità dei pulsanti. Vedere Utilizzo dei pulsanti in un elemento principale variabile.

  • Il parser HID usa solo gli utilizzi minimi necessari per assegnare un utilizzo a ogni valore. Il parser assegna gli utilizzi nell'ordine in cui vengono specificati in un descrittore di report. Gli utilizzi in un descrittore di report non necessari vengono eliminati. La matrice di funzionalità valore non contiene informazioni sugli utilizzi eliminati.

  • Il parser HID assegna un indice dati univoco a ogni utilizzo descritto nella matrice di funzionalità.

Per una descrizione della modalità di assegnazione degli indici di dati ai valori, vedere Indici di dati.

Matrice di valori di utilizzo

Una matrice di valori di utilizzo è un set consecutivo di valori specificati in un elemento principale, tutti assegnati allo stesso utilizzo. Ciò si verifica se viene specificato un solo utilizzo per un elemento principale il cui numero di report è maggiore di uno.

Nella figura seguente viene illustrato un esempio di matrice di valori di utilizzo che contiene cinque elementi di dati, ognuno dei sei bit di lunghezza.

Diagramma che illustra una matrice di valori di utilizzo che contiene cinque elementi di dati, ogni 6 bit di lunghezza.

Nell'esempio precedente, la struttura delle funzionalità del valore per una matrice di valori di utilizzo di questo tipo è impostata su FALSE, il membro NotRange.Usage impostato su 17, il membro ReportCount impostato su 5 e il relativo membro BitSize impostato su 6.

Se il conteggio dei report per un utilizzo è 1, usare HidP_GetUsageValue per estrarre il valore di utilizzo. Se il numero di report dell'utilizzo è maggiore di 1, HidP_GetUsageValue restituisce solo il primo elemento dati in una matrice di valori di utilizzo. Per estrarre tutti gli elementi di dati in una matrice di valori di utilizzo, usare HidP_GetUsageValueArray.