링크 컬렉션

최상위 컬렉션 내의 중첩된 하위 컬렉션인 링크 컬렉션입니다. 최상위 컬렉션에는 0개 이상의 링크 컬렉션이 있을 수 있습니다.

HidP_GetLinkCollectionNodes 최상위 컬렉션의 링크 컬렉션 에 대한 정보를 포함하는 최상위 컬렉션의 링크 컬렉션 배열을 반환합니다.

링크 컬렉션 배열은 최상위 컬렉션에 포함된 모든 링크 컬렉션을 설명합니다. 각 링크 컬렉션은 HIDP_LINK_COLLECTION_NODE 구조체로 표시됩니다. 배열의 링크 노드는 최상위 컬렉션 내에서 순차적 및 계층적 순서를 식별하는 방식으로 연결됩니다. 링크 컬렉션 배열의 첫 번째 요소는 최상위 컬렉션을 나타내고 나머지 멤버는 최상위 컬렉션의 링크 컬렉션을 나타냅니다.

링크 연결 배열의 노드를 추적하여 사용자 모드 애플리케이션 또는 커널 모드 드라이버는 최상위 컬렉션에 있는 모든 링크 컬렉션의 organization 및 사용을 확인할 수 있습니다. 또한 애플리케이션 또는 드라이버는 링크 컬렉션별로 컨트롤을 구성할 수 있습니다. 이는 최상위 컬렉션의 단추 기능 배열값 기능 배열 이 기능 배열에서 설명하는 각 HID 사용량을 포함하는 링크 컬렉션을 식별하기 때문에 가능합니다.

다음 그림에서는 4개의 링크 컬렉션이 포함된 최상위 컬렉션의 예를 보여 줍니다.

4개의 링크 컬렉션이 포함된 최상위 컬렉션을 보여 주는 다이어그램

이전 그림에 표시된 것처럼 링크 컬렉션은 ABCD(위쪽에서 아래쪽 및 왼쪽에서 오른쪽 순서)로 함께 연결됩니다. 다음 표에서는 예제의 각 링크 컬렉션에 대해 최상위 컬렉션과 해당 링크 컬렉션 간의 링크를 나타냅니다.

링크 노드 Parent Children First Child 다음 형제
A 최상위 컬렉션 B, C b None
b A D D C
C A 없음 없음 없음
D b None 없음 없음

링크 컬렉션 배열에서 다음 정의는 다음과 같습니다.

  • 부모: 링크 컬렉션의 부모는 컬렉션의 위쪽에서 아래쪽 계층 구조 바로 위에 있는 컬렉션입니다. 링크 컬렉션에는 하나의 부모가 있습니다. 링크 노드의 부모 멤버는 링크 컬렉션 배열에서 해당 부모의 인덱스를 지정합니다.

  • 자식: 링크 컬렉션은 부모의 자식 입니다. 부모에는 0개 이상의 자식이 있을 수 있습니다. 링크 노드의 NumberOfChildren 멤버는 부모가 가진 자식 수를 지정합니다.

  • 형제: 부모의 자녀는 형제입니다.

  • 다음 형제: 형제는 왼쪽에서 오른쪽으로 정렬됩니다. 형제의 다음 형제 는 형제 집합에서 바로 오른쪽에 있는 형제입니다. 링크 컬렉션 노드의 NextSibling 멤버는 링크 컬렉션 배열의 다음 형제에 대한 인덱스를 지정합니다. 링크 컬렉션 노드에 다음 형제가 없으면 NextSibling 이 0으로 설정됩니다.

  • 첫 번째 자녀: 첫 번째 아이는 형제 집합에서 가장 왼쪽에 있는 형제입니다. 링크 컬렉션 노드의 FirstChild 멤버는 링크 컬렉션 배열의 첫 번째 자식에 대한 인덱스를 지정합니다. 링크 컬렉션 노드에 자식이 없으면 FirstChild 가 0으로 설정됩니다.

애플리케이션 또는 드라이버는 부모의 첫 번째 자식부터 형제 노드의 NextSibling 멤버가 0이 될 때까지 첫 번째 자식의 형제를 시퀀싱하여 부모 컬렉션의 모든 자식을 확인할 수 있습니다.

다음 코드는 링크 컬렉션 노드 인덱스 를 사용하여 링크 컬렉션 7의 첫 번째 자식 을 찾는 방법을 보여줍니다.

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

별칭이 지정된 컬렉션

보고서 설명자에서 구분 기호 항목을 사용하여 별칭이 지정된 컬렉션 집합을 구분할 수 있습니다. 별칭이 지정된 각 컬렉션은 별칭이 지정된 링크 컬렉션 노드로 표시됩니다. n, n>=2, 별칭이 지정된 노드의 완전하고 고유한 집합은 다음과 같은 방식으로 함께 연결됩니다.

  • 별칭이 지정된 노드는 링크 컬렉션 배열에서 연속 순서로 표시됩니다.

  • 첫 번째 n-1 노드에는 IsAlias 멤버가 TRUE로 설정됩니다. 이러한 시퀀스 바로 다음 의 n번째 노드에는 IsAlias 멤버가 FALSE로 설정됩니다. 이 노드는 별칭이 지정된 노드의 시퀀스를 종료합니다. 이 노드와 연결된 사용법이 기본 사용법입니다.

애플리케이션 또는 드라이버는 이러한 시퀀스를 찾기 위해 링크 컬렉션 배열의 배열 인덱스를 반복적으로 증가시켜 별칭이 지정된 컬렉션을 확인할 수 있습니다.

단추 기능 배열 및값 기능 배열은 설명하는 각 사용량에 대해 사용량을 포함하는 링크 컬렉션을 식별합니다. 링크 컬렉션의 별칭이 지정된 경우 기능 배열은 기본 사용량을 지정합니다.