다음을 통해 공유


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 또는 bluetooth의 선택적 공급자 문자열을 usb 포함할 수 있습니다.

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

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

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

다음은 요소의 추가 공급자 문자열 usbDevice 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 되며, 디바이스/클래스 필터의 존재에 따라 HID 디바이스 인터페이스에서 디바이스 인터페이스 GUID_DEVINTERFACE_HID 속성을 DEVPKEY_DeviceInterface_RestrictedTRUE 로 설정할 수 있습니다.
    • 디바이스 UpperFilterLowerFilter/ 드라이버의 존재는 및 LowerFilters 속성을 찾아 UpperFilters DeviceManager를 사용하여 확인할 수 있습니다.
    • HID 클래스 UpperFilterLowerFilter/ 드라이버의 존재는 및 Class lower filters 속성을 찾아 Class upper filters DeviceManager를 사용하여 확인할 수 있습니다.
    • 디바이스 인터페이스 속성은 FromIdAsync에 전달되는 것과 동일한 문자열인 를 pszDeviceInterface 호출 CM_Get_Device_Interface_Property 하여 검사할 수 있습니다.
  • 드라이버 개발자와 협력하여 하드웨어 지원 앱을 만들어 사용자 지정 디바이스를 만들 때 이러한 제한을 무시할 수 있습니다.

클래스

HidBooleanControl

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

HidBooleanControlDescription

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

HidCollection

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

HID 프로토콜은 컬렉션을 사용하여 서로 유사한 컨트롤 집합을 그룹화하거나 물리적 또는 운영 근접성으로 관련됩니다.

HidDevice

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

HidFeatureReport

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

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

HidInputReport

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

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

HidInputReportReceivedEventArgs

HID API가 input-report 이벤트의 일부로 보내는 인수를 나타냅니다.

HidNumericControl

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

HidNumericControlDescription

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

HidOutputReport

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

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

열거형

HidCollectionType

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

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

HidReportType

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

추가 정보