Matrici di funzionalità dei pulsanti
Una matrice di funzionalità dei pulsanti contiene informazioni sull'utilizzo dei pulsanti supportati da una raccolta di livello superiore per un tipo specifico di report HID. Le informazioni sulla funzionalità 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_GetButtonCaps restituisce una matrice di funzionalità del pulsante che descrive tutti gli utilizzi dei pulsanti contenuti in un tipo di report specificato.
HidP_GetSpecificButtonCaps filtra le informazioni sulla funzionalità del pulsante restituite da una pagina di utilizzo specificata dal chiamante, dall'ID di utilizzo e dalla raccolta di collegamenti.
Una matrice di funzionalità dei pulsanti contiene HIDP_BUTTON_CAPS strutture, ognuna delle quali contiene le informazioni seguenti su un intervallo di utilizzo o utilizzoHID:
Pagina di utilizzo per l'utilizzo o l'intervallo di utilizzo
ID report del report che contiene i dati del pulsante
ID di utilizzo o intervallo di utilizzo
Flag che indica se un utilizzo è un utilizzo con alias
Raccolta di collegamenti che contiene l'intervallo di utilizzo o utilizzo
Descrittori di stringa e designatori associati all'intervallo di utilizzo o di utilizzo (vedere Elemento indice di progettazione e elemento Indice stringa)
Indici di dati assegnati dal parser HID all'intervallo di utilizzo o di utilizzo
In generale, le condizioni seguenti sono contenute per tutti gli utilizzi descritti da una matrice di funzionalità dei pulsanti:
Ogni struttura di funzionalità rappresenta un singolo intervallo di utilizzo o di utilizzo associato a un elemento principale di una variabile o a un elemento principale della matrice.
Gli utilizzi con alias possono essere usati con un elemento principale variabile. Non è possibile eseguire l'aliasing di un utilizzo associato a un elemento di matrice. Non è possibile eseguire l'aliasing di un intervallo di utilizzo.
Il parser HID usa solo il numero minimo necessario di utilizzi per assegnare un utilizzo a ogni pulsante. 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 pulsante non contiene informazioni sugli utilizzi eliminati.
Se il numero di utilizzi specificati per un elemento variabile è minore del numero di pulsanti nell'elemento, la matrice di funzionalità contiene una sola struttura di funzionalità che descrive l'utilizzo di un pulsante (l'ultimo utilizzo specificato nel descrittore del report per l'elemento principale della variabile). Per informazioni sui valori di utilizzo con un numero di report maggiore di uno, vedere Tuttavia, vedere Matrice valori di utilizzo.
Il parser HID assegna un indice dati univoco a ogni utilizzo descritto nella matrice di funzionalità.
Gli argomenti seguenti illustrano come le strutture di funzionalità sono organizzate e impostate in una matrice di funzionalità dei pulsanti:
- Utilizzi dei pulsanti in un elemento principale di una variabile
- Utilizzi dei pulsanti in un elemento principale della matrice
Utilizzi dei pulsanti in un elemento principale di una variabile
Ogni intervallodi utilizzo o utilizzo specificato in un descrittore di report viene descritto dalla propria struttura di funzionalità in una matrice di funzionalità del pulsante.
Il membro IsAlias delle strutture di funzionalità viene usato per specificare un set di n utilizzi con alias come indicato di seguito:
- IsAlias è impostato su TRUE nelle prime strutture di funzionalità n-1 aggiunte alla matrice di funzionalità. IsAlias impostato su FALSE nella struttura di nfunzionalità. L'utilizzo preferito è l'ultimo utilizzo con alias nella sequenza.
Un'applicazione o un driver può determinare quali utilizzi dei pulsanti sono aliasati dall'analisi di tali sequenze.
La tabella seguente riepiloga un esempio per tre utilizzi con alias.
Ordine di utilizzo con alias in un descrittore di report | Ordine di utilizzo in una matrice di funzionalità | Valore del membro IsAlias |
---|---|---|
utilizzo 1 | utilizzo 3 | TRUE |
utilizzo 2 | utilizzo 2 | TRUE |
utilizzo 3 | utilizzo 1 | FALSE |
Per informazioni sull'utilizzo e sugli indici di dati a cui viene fatto riferimento incrociato, vedere Indici di dati.
Utilizzi dei pulsanti in un elemento principale della matrice
Ogni intervallodi utilizzo o utilizzo per un elemento principale della matrice di pulsanti specificato in un descrittore di report è descritto dalla propria struttura di funzionalità in una matrice di funzionalità del pulsante. L'ordine in cui le strutture di funzionalità vengono aggiunte a una matrice di funzionalità è il contrario dell'ordine in cui vengono specificati gli utilizzi per un elemento principale.
Il parser HID assegna un indice dati a ogni utilizzo associato all'elemento della matrice nell'ordine in cui gli utilizzi vengono specificati in un descrittore del report. La tabella seguente, ad esempio, mostra la corrispondenza tra un set di utilizzi, come specificato in un descrittore di report e gli indici di dati e di utilizzo, come specificato nella matrice di funzionalità. In questa tabella n è il primo indice dati assegnato dal parser al primo utilizzo associato all'elemento della matrice.
Ordine di utilizzo nel descrittore di report | Ordine di utilizzo nella matrice di funzionalità | DataIndex o da DataIndexMin a DataIndexMax |
---|---|---|
utilizzo 1 | intervallo di utilizzo 2 | da n+7 a n+8 |
intervallo di utilizzo 1 (con 4 utilizzi) | utilizzo 2 | n+5 |
utilizzo 2 | intervallo di utilizzo 1 | da n+1 a n+4 |
intervallo di utilizzo 2 (con 2 utilizzi) | utilizzo 1 | n |