Windows.Devices.HumanInterfaceDevice 네임스페이스

이 네임스페이스는 UWP 앱에 HID(휴먼 인터페이스 디바이스) 프로토콜을 지원하는 디바이스에 대한 액세스 권한을 부여합니다.

디바이스 지원

이 네임스페이스는 대부분의 HID를 지원합니다. 그러나 다음 사용법으로 표시되는 최상위 TCC(애플리케이션 컬렉션)에 대한 액세스는 제공하지 않습니다.

액세스할 수 없는 사용량입니다.

UsagePage UsageIds
HID_USAGE_PAGE_UNDEFINED (0x00) 모두
HID_USAGE_PAGE_GENERIC (0x01) HID_USAGE_GENERIC_MOUSE (0x02)
HID_USAGE_GENERIC_KEYBOARD (0x06)
HID_USAGE_GENERIC_KEYPAD (0x07)
HID_USAGE_GENERIC_SYSTEM_CTL (0x80)
HID_USAGE_PAGE_KEYBOARD (0x07) 모두
HID_USAGE_PAGE_CONSUMER (0x0C) 모두
HID_USAGE_PAGE_DIGITIZER (0x0D) 모두
HID_USAGE_PAGE_SENSOR (0x20) 모두
HID_USAGE_PAGE_LIGHTING_ILLUMINATION (0x59) HID_USAGE_LAMPARRAY (0x01)

휴먼 인터페이스 디바이스 기능

HID에 액세스하는 UWP 앱은 매니페스트의 기능 노드에 특정 디바이스 기능 데이터를 포함해야 합니다. 이 데이터는 디바이스와 디바이스의 용도(또는 함수)를 식별합니다. 일부 디바이스에는 여러 함수가 있을 수 있습니다.

Windows 10, 버전 1809 이후(2018년 10월 업데이트)

<DeviceCapability Name="humanInterfaceDevice"/>

HID 전화 통신 디바이스(UsagePage==0x0B)를 대상으로 하는 경우 추가 기능 hidTelephony 도 지정해야 합니다.

<DeviceCapability Name="humanInterfaceDevice"/>
<DeviceCapability Name="hidTelephony"/>

Windows 10, 버전 1809 이전(2018년 10월 업데이트)

1809년 이후 VendorId ProductId/ 및 함수 형식 은 더 이상 지정할 필요가 없으며 최신 시스템에서 무시됩니다. 1809 이전 시스템을 대상으로 하는 경우 아래를 참조하세요.

  • <DeviceCapability>: Name 특성은 .이어야 humanInterfaceDevice합니다.

    • <디바이스>: ID 특성은 디바이스 식별자를 지정해야 합니다. 이 요소는 조합 공급업체 ID (vid) 및 제품 ID (pid)를 지정할 수 있습니다. 또는 제네릭 문자열 any을 지정할 수 있습니다. 또한 Device Id 선택적 공급자 문자열 usb 또는 bluetooth.을 포함할 수 있습니다.

      • <함수>: Type 특성은 디바이스 함수를 지정합니다. 이 요소에는 하나 이상의 HID 사용 값이 포함됩니다. 이러한 값은 각각 16비트 16비트 16진수 값인 선택 사항UsageId으로 구성 UsagePage 됩니다.

다음 공급업체 정의 사용량 현황 데이터에서 디바이스는 공급업체 ID제품 ID 조합으로 식별됩니다.

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

다음은 요소의 추가 공급자 문자열 usb Device Id 을 제외하고 첫 번째와 동일합니다.

<DeviceCapability Name="humaninterfacedevice">
    <Device Id="vidpid:0A81 0701 usb">
      <Function Type="usage:ffa0 0001"/>
    </Device>
</DeviceCapability>

다음 게임 디바이스 데이터에는 공급업체 ID제품 ID 가 없습니다.

<!-- Any gamepad device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

다음 조이스틱 및 게임 패드 데이터에는 공급업체 ID제품 ID 가 없습니다.

<!-- Any generic gaming device  -->
<DeviceCapability Name="humaninterfacedevice">
    <Device Id="any">
      <Function Type="usage:0004 *"/>
      <Function Type="usage:0005 *"/>
    </Device>
</DeviceCapability>

문제 해결

  • HID 기능(humanInterfaceDevice)이 애플리케이션 매니페스트에 있는지 확인합니다. 전화 통신 디바이스인 경우 기능도 포함되어 있는지 확인 hidTelephony 합니다.
  • 사용자가 애플리케이션에서 HID를 활용할 수 있는 권한을 부여했는지 확인합니다.
  • 디바이스 유형이 액세스할 수 없는 것으로 지정된 유형이 아닌지 확인합니다.
  • 포함된 모드lowLevelDevices 기능이 있는 SKU에서 실행 되지 않는 한 컴퓨터 내부 디바이스(DEVPKEY_Device_InLocalMachineContainer == TRUE)는 일반적으로 액세스할 수 없습니다.
  • 상위/하위 필터 드라이버가 포함된 스택이 있는 디바이스는 일반적으로 액세스할 수 없습니다 . 사용자 지정 하드웨어에 대한 추가 기능을 사용하도록 타사에서 추가되는 경우도 있습니다.
    • 디바이스 제한은 디바이스 열거 중에 부분적으로 결정 hidclass.sys 되며, 디바이스/클래스 필터의 존재에 따라 디바이스 인터페이스 속성을 TRUE DEVPKEY_DeviceInterface_Restricted HID 디바이스 인터페이스 GUID_DEVINTERFACE_HID 에 설정할 수 있습니다.
    • 디바이스 UpperFilterLowerFilter/ 드라이버의 존재는 DeviceManager를 사용하여 검색 UpperFiltersLowerFilters 속성을 통해 확인할 수 있습니다.
    • HID 클래스 UpperFilterLowerFilter/ 드라이버의 존재는 DeviceManager를 사용하여 검색 Class upper filtersClass lower filters 속성을 통해 확인할 수 있습니다.
    • 디바이스 인터페이스 속성은 전달되는 것과 동일한 문자열이 있는 위치를 pszDeviceInterface 호출 CM_Get_Device_Interface_Property 하여 검사할 FromIdAsync수 있습니다.
  • 드라이버 개발자와 협력하여 하드웨어 지원 앱을 만들어 사용자 지정 디바이스를 만들 때 이러한 제한을 무시할 수 있습니다.

클래스

HidBooleanControl

켜기/끄기 값을 반환하는 HID 디바이스의 간단한 부울 컨트롤을 나타냅니다. 예를 들어 키보드의 LED 조명이 있습니다.

HidBooleanControlDescription

지정된 HID 디바이스에 대한 부울 컨트롤을 설명합니다.

HidCollection

관련 컨트롤 그룹에 대한 컬렉션 정보를 검색합니다.

HID 프로토콜은 컬렉션을 사용하여 서로 비슷하거나 물리적 또는 작동 근접성으로 관련된 컨트롤 집합을 그룹화합니다.

HidDevice

최상위 컬렉션 및 해당 디바이스를 나타냅니다.

HidFeatureReport

HID 기능 보고서를 나타냅니다.

기능 보고서는 디바이스와 호스트 모두에서 발급됩니다. 디바이스는 기능 보고서를 실행하여 해당 기능 및 호스트에 대한 기본 설정을 설명합니다. 호스트는 기능 보고서를 실행하여 디바이스를 요청합니다.

HidInputReport

HID 입력 보고서를 나타냅니다.

디바이스는 입력 보고서를 실행하여 상태 변경, 사용자 입력 및 기타 디바이스 관련 데이터를 설명합니다. 예를 들어 HID 키보드 디바이스는 입력 보고서를 사용하여 키 누름을 알릴 수 있습니다. HID 프레즌스 센서는 입력 보고서를 사용하여 현재 상태 감지 이벤트를 알릴 수 있습니다.

HidInputReportReceivedEventArgs

HID API가 입력 보고서 이벤트의 일부로 보내는 인수를 나타냅니다.

HidNumericControl

값 범위를 반환하는 HID 디바이스의 숫자 컨트롤을 나타냅니다. 예를 들어 스피커의 볼륨 제어가 있습니다.

HidNumericControlDescription

지정된 HID 디바이스에 대한 숫자 컨트롤을 설명합니다.

HidOutputReport

HID 출력 보고서를 나타냅니다.

호스트는 출력 보고서를 실행하여 디바이스에 대한 변경 내용을 요청합니다. 예를 들어 호스트는 키보드에 LED를 켜거나 끄라는 요청을 발행할 수 있습니다.

열거형

HidCollectionType

디바이스에서 컨트롤 그룹을 정의하는 관계를 식별합니다.

컬렉션은 서로 유사한 컨트롤 집합을 그룹화할 수 있는 방법입니다. 또는 물리적 또는 작동 근접성으로 관련됩니다.

HidReportType

HID 보고서 유형을 지정합니다.

추가 정보