HID 보고서 해석
이 문서에서는 사용자 모드 애플리케이션 및 커널 모드 드라이버가 HidP_XxxHIDClass 지원 루틴을 사용하여 HID 보고서의 제어 데이터를 해석하는 방법을 설명합니다.
사용량을 지정하여 값 데이터 추출
HID 보고서에서 값 데이터를 추출하기 위해 애플리케이션 또는 드라이버는 다음 HID 지원 루틴 중 하나를 사용할 수 있습니다.
- HidP_GetScaledUsageValue 서명되고 크기가 조정된 값을 반환합니다.
- HidP_GetUsageValue 부호 없는 형식으로 크기가 조정되지 않은 값이나 정규 범위를 벗어난 배율 값을 반환합니다.
- HidP_GetUsageValueArray 사용량 값 배열을 반환합니다.
HidP_GetUsageValueArray 애플리케이션 및 드라이버를 사용하려면 사용량 값 배열을 보유할 수 있을 만큼 큰 초기화되지 않은 버퍼를 할당해야 합니다. 필요한 크기(바이트)는 가장 가까운 바이트로 반올림된 사용량 값 배열의 HIDP_VALUE_CAPS 구조에 대한 BitSize 및 ReportCount 멤버의 곱입니다.
ON으로 설정된 단추 사용량 추출
ON(1)으로 설정된 단추의 HID 사용을 추출하기 위해 애플리케이션 및 드라이버는 다음 HID 지원 루틴 중 하나를 호출합니다.
- HidP_GetButtons(또는 HidP_GetUsages) ON으로 설정된 지정된 사용 페이지에 있는 모든 단추의 사용 ID를 반환합니다.
- HidP_GetButtonsEx(또는 HidP_GetUsagesEx) ON으로 설정된 모든 단추의 사용 페이지 및 사용 ID를 반환합니다.
이러한 루틴은 현재 ON으로 설정된 모든 단추에 대한 모든 사용량 정보의 배열을 반환합니다. 암시적으로 이러한 루틴에서 사용량이 반환되지 않는 단추는 OFF(0)로 설정됩니다.
이러한 루틴을 호출하려면 애플리케이션과 드라이버가 먼저 단추 사용 배열을 반환하는 데 사용되는 버퍼를 할당하고 0으로 초기화해야 합니다. 애플리케이션 또는 드라이버가 HidP_MaxUsageListLength 호출하여 보고서의 지정된 사용량 페이지에서 단추 사용 횟수를 확인합니다. 애플리케이션 또는 드라이버가 0의 사용 페이지를 지정하는 경우 루틴은 보고서의 모든 단추 사용 수를 반환합니다.
필요한 버퍼 크기(바이트)는 다음과 같습니다.
- (대상 HidP_GetButtons) HidP_MaxUsageListLength times sizeof(USAGE)에서 반환되는 값입니다.
- (대상 HidP_GetButtonsEx) HidP_MaxUsageListLength times sizeof(USAGE_AND_PAGE)에서 반환되는 값입니다.
애플리케이션 또는 드라이버가 이러한 루틴을 사용하여 현재 ON으로 설정된 단추에 대한 정보를 가져온 후 다음 HIDClass 지원 루틴 중 하나를 호출하여 단추의 현재 상태와 이전 상태 간의 차이를 확인할 수 있습니다. 이러한 루틴은 두 가지 사용량 정보 배열 간의 차이를 반환합니다.
데이터 인덱스로 제어 데이터 추출 및 설정
데이터 인덱스를 사용하여 HID 보고서에서 제어 데이터를 추출하고 설정하기 위해 애플리케이션 또는 드라이버는 다음 HIDClass 지원 루틴을 사용할 수 있습니다.
이러한 루틴은 "부가 가치" 서비스를 제공하는 애플리케이션 또는 드라이버에 유용합니다. 예를 들어 HIDClass 디바이스에서 지원하는 모든 컨트롤에 사용자 지정 인터페이스를 제공하는 인터페이스입니다. Microsoft DirectInput은 한 가지 예입니다.
이러한 루틴을 호출하는 애플리케이션 또는 드라이버는 보고서의 모든 값을 가장 효율적으로 가져오고 설정할 수 있습니다. 예를 들어 HID 사용량으로 모든 값 데이터를 가져오려면 각 사용량에 대해 HidP_GetUsageValue 호출해야 합니다. 그러나 데이터 인덱스로 모든 값 데이터를 가져오려면 HidP_GetData 한 번만 호출하면 됩니다.
애플리케이션 또는 드라이버는 컬렉션의 단추 기능 배열 및 값 기능 배열에 지정된 데이터 인덱스를 사용하여 HID 사용량을 식별합니다.
사용량을 지정하여 값 데이터 설정
애플리케이션 또는 드라이버는 다음 HID 지원 루틴 중 하나를 호출하여 올바르게 초기화된 HID 보고서에서 값을 설정할 수 있습니다.
- HidP_SetScaledUsageValue 보고서에서 서명되고 크기가 조정된 값을 설정합니다.
- HidP_SetUsageValue 보고서의 값을 설정합니다.
- HidP_SetUsageValueArray 보고서에서 사용량 값 배열을 설정합니다.
사용량을 지정하여 단추 상태 설정
애플리케이션 또는 드라이버는 다음 HIDClass 지원 루틴 중 하나를 호출하여 올바르게 초기화된 HID 보고서에서 단추의 상태를 설정할 수 있습니다.
- HidP_SetButtons(또는 HidP_SetUsages) 지정된 단추 집합을 ON(1)으로 설정합니다.
- HidP_UnsetButtons(또는 HidP_UnsetUsages) 지정된 단추 집합을 OFF(0)로 설정합니다.
데이터 인덱스별로 HID 제어 데이터 추출 및 설정
데이터 인덱스를 사용하여 HID 보고서에서 제어 데이터를 추출하고 설정하기 위해 애플리케이션 또는 드라이버는 다음 HIDClass 지원 루틴을 사용할 수 있습니다.
이러한 루틴은 "부가 가치" 서비스를 제공하는 애플리케이션 또는 드라이버에 유용합니다. 예를 들어 HIDClass 디바이스에서 지원하는 모든 컨트롤에 사용자 지정 인터페이스를 제공하는 인터페이스입니다. Microsoft DirectInput은 한 가지 예입니다.
이러한 루틴을 호출하는 애플리케이션 또는 드라이버는 보고서의 모든 값을 가장 효율적으로 가져오고 설정할 수 있습니다. 예를 들어 HID 사용량으로 모든 값 데이터를 가져오려면 각 사용량에 대한 HidP_GetUsageValue 호출해야 합니다. 그러나 데이터 인덱스로 모든 값 데이터를 가져오려면 HidP_GetData 한 번만 호출하면 됩니다.
애플리케이션 또는 드라이버는 컬렉션의 단추 기능 배열 및 값 기능 배열에 지정된 데이터 인덱스를 사용하여 HID 사용량을 식별합니다.