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

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