Condividi tramite


Matrici di capacità di valore

Una matrice di funzionalità di 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à di 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à di 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.

Un array di capacità di valore contiene strutture HIDP_VALUE_CAPS, ognuna delle quali descrive le seguenti informazioni su un utilizzo HID o un intervallo di utilizzo.

  • Pagina di utilizzo per un utilizzo o un intervallo di utilizzo

  • ID del report che contiene il valore

  • ID utilizzo o intervallo di utilizzo

  • Indica se un utilizzo è un utilizzo con alias

  • Informazioni sulla raccolta di link che contiene il range di uso o 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 i designatori associati all'utilizzo o all'intervallo di utilizzo

  • Informazioni sugli indici di dati che il parser HID assegna a un utilizzo o alla gamma 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 dell'array non sono supportati come valori.

  • È possibile usare gli utilizzi con alias. Non è possibile aliasare un intervallo di utilizzo. I valori con alias vengono collegati in un array di capacità di valori nello stesso modo in cui i pulsanti con alias vengono collegati in un array di capacità di 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à del 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.

La figura seguente mostra un esempio di matrice di valori di utilizzo che contiene cinque elementi di dati, ognuno dei sei bit lunghi.

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 di capacità di valore per una matrice di valori di utilizzo avrebbe il membro IsRange impostato su FALSE, il membro NotRange.Usage impostato su 17, il membro ReportCount impostato su 5 e il membro BitSize impostato su 6.

Se il numero di 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 di 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.