Partilhar via


Coleções de links

Uma coleção de links como uma subcoleção aninhada dentro de uma coleção de nível superior. Uma coleção de nível superior pode ter zero ou mais coleções de links.

HidP_GetLinkCollectionNodes retorna a matriz de coleção de links de uma coleção de nível superior que contém informações sobre as coleções de links de uma coleção de nível superior.

Uma matriz de coleção de links descreve todas as coleções de links contidas em uma coleção de nível superior. Cada coleção de links é representada por uma estrutura HIDP_LINK_COLLECTION_NODE . Os nós de link da matriz são vinculados de uma maneira que identifica sua ordem sequencial e hierárquica dentro de uma coleção de nível superior. O primeiro elemento de uma matriz de coleção de link representa uma coleção de nível superior e os membros restantes representam as coleções de links da coleção de nível superior.

Ao rastrear os nós na matriz de conexão de link, um aplicativo de modo de usuário ou driver de modo kernel pode determinar a organização e o uso de todas as coleções de links em uma coleção de nível superior. Além disso, o aplicativo ou driver pode organizar controles por sua coleção de links. Isso é possível porque as matrizes de capacidade de botão e as matrizes de capacidade de valor de uma coleção de nível superior identificam a coleção de links que contém cada uso HID descrito pelas matrizes de capacidade.

A figura a seguir mostra um exemplo de uma coleção de nível superior que contém quatro coleções de links.

Diagrama ilustrando uma coleção de nível superior que contém quatro coleções de links.

Como indicado na figura anterior, as coleções de links são vinculadas em uma ordem de cima para baixo e da esquerda para a direita (ABCD). A tabela a seguir indica, para cada coleção de links no exemplo, os links entre a coleção de nível superior e suas coleções de links.

Nó de ligação Progenitor Children Primeiro Filho Próximo Irmão
A Coleção de nível superior B, C B Nenhum
B A D D C
C A Nenhum Nenhum Nenhum
D B Nenhum Nenhum Nenhum

Numa coleção de links, aplicam-se as seguintes definições:

  • Pai: o pai de uma coleção de links é a coleção imediatamente acima dela na hierarquia de coleções de cima para baixo. As coleções de links têm um pai. O elemento pai de um nó de link especifica o índice do seu pai na matriz de ligação.

  • Filhos: Uma coleção de links é um filho de seu pai. Um pai ou mãe pode ter zero ou mais filhos. O membro NumberOfChildren de um nó de link especifica o número de filhos que um pai tem.

  • Irmão: Os filhos de um pai são irmãos.

  • Próximo irmão: Os irmãos são ordenados da esquerda para a direita. O próximo irmão de um irmão é o irmão imediatamente à sua direita, se houver, em um conjunto de irmãos. O membro NextSibling de um nó de coleção de links especifica o índice para seu próximo irmão na matriz de coleta de links. Se um nó de coleção de links não tiver um próximo irmão, NextSibling será definido como zero.

  • Primeiro filho: O primeiro filho é o irmão mais à esquerda em um conjunto de irmãos. O membro FirstChild de um nó de coleção de links especifica o índice para seu primeiro filho na matriz de coleta de links. Se um nó de coleta de link não tiver filhos, FirstChild será definido como zero.

Um aplicativo ou driver pode determinar todos os filhos de uma coleção pai, começando com o primeiro filho do pai, sequenciando através dos irmãos do primeiro filho até que o membro NextSibling de um nó irmão seja zero.

O código a seguir mostra como usar um índice de nó de coleção de links para localizar o primeiro filho da coleção de links sete:

HIDP_LINK_COLLECTION_NODE Collection[10] ;
HIDP_LINK_COLLECTION_NODE Node1 ;
 
Node1 = Collection[Collection[7].FirstChild];

Coleções com alias

Os itens do delimitador podem ser usados em um descritor de relatório para delimitar um conjunto de coleções com alias. Cada coleção com pseudônimo é representada por um nó de coleção de link com pseudônimo. Um conjunto de nós completo e exclusivo de n, n>=2, com alias, é vinculado da seguinte maneira:

  • Os nós com alias estão em ordem consecutiva na matriz de coleta de links.

  • Os primeiros nós n-1 têm seu membro IsAlias definido como TRUE. O n-ésimo nó imediatamente após tal sequência tem o seu membro IsAlias definido como FALSE. Este nó encerra a sequência de nós com alias. A utilização associada a este nó é a utilização preferencial.

Um aplicativo ou driver pode determinar quais coleções são aliás incrementando repetidamente o índice em uma matriz de coleções de links para localizar essas sequências.

As matrizes de capacidade de botão e as matrizes de capacidade de valor identificam, para cada uso que descrevem, a coleção de links que contém o uso. Se uma coleção de links tiver um alias, as arrays de capacidades especificam o uso preferido.