링크 컬렉션
최상위 컬렉션 내의 중첩된 하위 컬렉션인 링크 컬렉션입니다. 최상위 컬렉션에는 0개 이상의 링크 컬렉션이 있을 수 있습니다.
HidP_GetLinkCollectionNodes 최상위 컬렉션의 링크 컬렉션 에 대한 정보를 포함하는 최상위 컬렉션의 링크 컬렉션 배열을 반환합니다.
링크 컬렉션 배열
링크 컬렉션 배열은 최상위 컬렉션에 포함된 모든 링크 컬렉션을 설명합니다. 각 링크 컬렉션은 HIDP_LINK_COLLECTION_NODE 구조체로 표시됩니다. 배열의 링크 노드는 최상위 컬렉션 내에서 순차적 및 계층적 순서를 식별하는 방식으로 연결됩니다. 링크 컬렉션 배열의 첫 번째 요소는 최상위 컬렉션을 나타내고 나머지 멤버는 최상위 컬렉션의 링크 컬렉션을 나타냅니다.
링크 연결 배열의 노드를 추적하여 사용자 모드 애플리케이션 또는 커널 모드 드라이버는 최상위 컬렉션에 있는 모든 링크 컬렉션의 organization 및 사용을 확인할 수 있습니다. 또한 애플리케이션 또는 드라이버는 링크 컬렉션별로 컨트롤을 구성할 수 있습니다. 이는 최상위 컬렉션의 단추 기능 배열 및 값 기능 배열 이 기능 배열에서 설명하는 각 HID 사용량을 포함하는 링크 컬렉션을 식별하기 때문에 가능합니다.
다음 그림에서는 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로 설정됩니다. 이 노드는 별칭이 지정된 노드의 시퀀스를 종료합니다. 이 노드와 연결된 사용법이 기본 사용법입니다.
애플리케이션 또는 드라이버는 이러한 시퀀스를 찾기 위해 링크 컬렉션 배열의 배열 인덱스를 반복적으로 증가시켜 별칭이 지정된 컬렉션을 확인할 수 있습니다.
단추 기능 배열 및값 기능 배열은 설명하는 각 사용량에 대해 사용량을 포함하는 링크 컬렉션을 식별합니다. 링크 컬렉션의 별칭이 지정된 경우 기능 배열은 기본 사용량을 지정합니다.