이 항목에서는 Windows 정밀 터치패드의 최상위 수준 컬렉션에 대해 설명하고, 컬렉션에서 HID 호환 터치패드 보고를 Windows 호스트에 제공하는 방법을 설명합니다.
Windows 정밀 터치패드 디바이스는 HID 프로토콜을 사용하여 디지타이저/터치패드로 표시되는 최상위 수준 컬렉션을 제공할 수 있습니다(페이지 0x0D, 사용법 0x05).
Windows 정밀 터치패드 컬렉션은 호스트에 다양한 다중 접점 및 단추 보고뿐만 아니라 이러한 보고서와 관련된 디바이스 정보도 제공하는 용도로 사용됩니다. 컬렉션은 두 가지 기능 보고서를 지원해야 합니다. 하나는 호스트에서 디바이스 접근 권한 값을 얻고 다른 하나는 디바이스의 인증 상태를 얻을 수 있도록 하는 것입니다. 필수 입력 보고서의 예는 샘플 보고서 설명자를 참조하세요.
절전 모드에서 USB 디바이스에 필요한 전력 소모량을 달성하기 위해 호스트에서 대기 시간 모드 힌트를 얻기 위해 선택적(그러나 매우 권장되는) 기능 보고서를 구현할 수 있습니다. 다음 섹션에서는 Windows 정밀 터치패드의 최상위 수준 컬렉션에 포함된 보고서에 대한 자세한 정보를 제공합니다.
디바이스 기능 보고서
디바이스 기능 보고서는 디바이스의 접점 보고 기능 및 디바이스 단추 종류에 대한 정보를 검색하기 위해 Windows 정밀 터치패드의 호스트에서 요청합니다.
디바이스의 접점 보고 기능은 보고할 수 있는 최대 동시 표면 접점 수로 정의됩니다. Windows 정밀 터치패드는 최소 3개의 동시 접점과 최대 5개의 동시 접점을 지원해야 합니다. 터치패드는 디바이스 기능 보고서의 최대 접점 수(페이지 0x0D, 사용법 0x55)를 통해 이 값을 보고해야 합니다. 데이터를 보고하는 동안 디바이스가 최대 접점 수보다 많은 접점을 보고하면 안 됩니다. 입력 프레임에 최대값보다 많은 연락처가 포함된 경우 호스트는 이전에 보고된 연락처의 데이터를 포함하여 전체 프레임을 삭제합니다. 최상의 사용자 환경을 위해 디바이스는 기존 연락처가 출발하더라도 새 연락처의 수명 동안 최대 수명에 도달한 후 감지된 새 연락처의 보고를 표시하지 않아야 합니다. 기존 연락처는 계속 보고될 수 있으며, 출국하는 경우 새로 도착한 연락처가 해당 위치를 차지할 수 있습니다.
디바이스의 단추 종류는 누를 수 있는 구현(클릭 패드 유형이라고도 함) 또는 누를 수 없는 구현(패드 유형이라고도 함)으로 정의됩니다. 또한 Windows 정밀 터치패드에는 단추가 아닌 보고 디지타이저 표면 및 외부 단추가 대신 있는 것도 허용됩니다.
단추 구현 유형은 디바이스 기능 보고서에서 단추 종류 값(페이지 0x0D, 사용법 0x59)을 통해 지정해야 합니다. 디바이스에 단추가 아닌 보고 디지타이저 표면이 있고 마우스 클릭에 대해서만 외부 단추를 대신 사용하는 경우 필요에 따라 이 사용법을 보고할 수 있습니다.
다음 표에는 단추 종류 사용법 값이 나와 있습니다.
| 단추 종류 값 | 구현 |
|---|---|
| 0 | 누를 수 있음(클릭 패드) |
| 1 | 누를 수 없음(압력 패드) |
| 2 | 클릭할 수 없음(불연속 패드) |
보고서 설명자를 읽은 후 언제든지 호스트에서 Windows 정밀 터치패드의 디바이스 기능 보고서를 요청할 수 있습니다.
디바이스 인증 상태 기능 보고서
디바이스 인증 상태 기능 보고서는 디바이스의 256바이트 Blob에 대한 정보를 검색하기 위해 Windows 정밀 터치패드의 호스트에서 요청합니다.
유효한 인증된 Blob을 호스트에 보고하는 것은 Windows 10에서 선택 사항이지만 Windows 8.1과의 이전 버전과의 호환성을 위해 필요합니다. 서명된 PTPHQA Blob과 통신하지 않는 디바이스는 여전히 아래 샘플 Blob과 같은 256바이트를 보고해야 합니다. 유효한 인증 Blob을 보고하지 않는 디바이스는 Windows 8.1에서 작동하지 않습니다. Windows는 HID 터치패드 사용법을 사용하지만 디바이스 기능 보고서에서 인증 상태를 공개하지 않는 디바이스와 상호 작용하지 않습니다.
256바이트는 디바이스 인증 상태 기능 보고서의 공급업체 정의 사용법 페이지(페이지 0xFF, 사용법 0xC5)의 공급업체별 사용법을 통해 지정해야 합니다.
디바이스에서 인증 상태를 나타내는 256바이트 Blob을 받기 전에 다음과 같이 기본 Blob을 구현해야 합니다.
0xfc, 0x28, 0xfe, 0x84, 0x40, 0xcb, 0x9a, 0x87, 0x0d, 0xbe, 0x57, 0x3c, 0xb6, 0x70, 0x09, 0x88, 0x07,
0x97, 0x2d, 0x2b, 0xe3, 0x38, 0x34, 0xb6, 0x6c, 0xed, 0xb0, 0xf7, 0xe5, 0x9c, 0xf6, 0xc2, 0x2e, 0x84,
0x1b, 0xe8, 0xb4, 0x51, 0x78, 0x43, 0x1f, 0x28, 0x4b, 0x7c, 0x2d, 0x53, 0xaf, 0xfc, 0x47, 0x70, 0x1b,
0x59, 0x6f, 0x74, 0x43, 0xc4, 0xf3, 0x47, 0x18, 0x53, 0x1a, 0xa2, 0xa1, 0x71, 0xc7, 0x95, 0x0e, 0x31,
0x55, 0x21, 0xd3, 0xb5, 0x1e, 0xe9, 0x0c, 0xba, 0xec, 0xb8, 0x89, 0x19, 0x3e, 0xb3, 0xaf, 0x75, 0x81,
0x9d, 0x53, 0xb9, 0x41, 0x57, 0xf4, 0x6d, 0x39, 0x25, 0x29, 0x7c, 0x87, 0xd9, 0xb4, 0x98, 0x45, 0x7d,
0xa7, 0x26, 0x9c, 0x65, 0x3b, 0x85, 0x68, 0x89, 0xd7, 0x3b, 0xbd, 0xff, 0x14, 0x67, 0xf2, 0x2b, 0xf0,
0x2a, 0x41, 0x54, 0xf0, 0xfd, 0x2c, 0x66, 0x7c, 0xf8, 0xc0, 0x8f, 0x33, 0x13, 0x03, 0xf1, 0xd3, 0xc1, 0x0b,
0x89, 0xd9, 0x1b, 0x62, 0xcd, 0x51, 0xb7, 0x80, 0xb8, 0xaf, 0x3a, 0x10, 0xc1, 0x8a, 0x5b, 0xe8, 0x8a,
0x56, 0xf0, 0x8c, 0xaa, 0xfa, 0x35, 0xe9, 0x42, 0xc4, 0xd8, 0x55, 0xc3, 0x38, 0xcc, 0x2b, 0x53, 0x5c,
0x69, 0x52, 0xd5, 0xc8, 0x73, 0x02, 0x38, 0x7c, 0x73, 0xb6, 0x41, 0xe7, 0xff, 0x05, 0xd8, 0x2b, 0x79,
0x9a, 0xe2, 0x34, 0x60, 0x8f, 0xa3, 0x32, 0x1f, 0x09, 0x78, 0x62, 0xbc, 0x80, 0xe3, 0x0f, 0xbd, 0x65,
0x20, 0x08, 0x13, 0xc1, 0xe2, 0xee, 0x53, 0x2d, 0x86, 0x7e, 0xa7, 0x5a, 0xc5, 0xd3, 0x7d, 0x98, 0xbe,
0x31, 0x48, 0x1f, 0xfb, 0xda, 0xaf, 0xa2, 0xa8, 0x6a, 0x89, 0xd6, 0xbf, 0xf2, 0xd3, 0x32, 0x2a, 0x9a,
0xe4, 0xcf, 0x17, 0xb7, 0xb8, 0xf4, 0xe1, 0x33, 0x08, 0x24, 0x8b, 0xc4, 0x43, 0xa5, 0xe5, 0x24, 0xc2
보고서 설명자를 읽은 후 언제든지 호스트에서 Windows 정밀 터치패드의 디바이스 인증 상태 기능 보고서를 요청할 수 있습니다.
대기 시간 모드 기능 보고서
대기 시간 모드 기능 보고서는 호스트에서 Windows 정밀 터치패드에 보내 절전을 위해 긴 대기 시간이 필요한 경우와 반대로 일반적인 대기 시간이 작동에 필요한 경우를 나타냅니다. USB 연결 Windows 정밀 터치패드 디바이스의 경우 이를 통해 디바이스는 비활성(런타임 IDLE)으로 인한 일시 중단과 시스템에 의한 S3 또는 연결된 대기 상태로의 전환으로 인한 일시 중단을 구분할 수 있습니다.
대기 시간 모드는 대기 시간 모드 기능 보고서의 대기 시간 모드 사용법 값(페이지 0x0D, 사용법 0x60)을 사용하여 표시해야 합니다. 다음 표에는 대기 시간 모드 사용법 값이 나와 있습니다.
| 대기 시간 모드 값 | 대기 시간 모드 |
|---|---|
| 0 | 일반적인 대기 시간 |
| 1 | 긴 대기 시간 |
촉각 강도 기능 보고서(선택 사항)
Windows 11의 촉각 강도 기능 보고서는 촉각 액추에이터를 사용하여 현재 PTP를 기반으로 하는 추가 기능을 제공하기 위해 구현되었습니다. 촉각 강도 기능 보고서는 터치패드의 촉각 피드백 강도를 설정하기 위해 호스트에서 Windows 정밀 터치 패드로 전송됩니다. 이 선택적 기능 보고서를 사용하려면 디바이스가 단일 전역 강도(페이지 0x0E, 사용량 0x23)로 SET_FEATURE 노출하는 SimpleHapticsController(페이지 0x0E, 사용량 0x01)를 보고해야 합니다.
샘플 설명자는 샘플 보고서 설명자를 참조 하세요.
단추 누르기 임계값 기능 보고서(선택 사항)
Windows 11 빌드 26027 이상에서는 Windows 터치 패드 설정을 통해 사용자 구성 가능한 클릭 강제에 대한 지원이 추가되었습니다(클릭/단추를 생성하기 위해 터치 패드에 적용된 힘 임계값인 단추 누르기 임계값). 이를 지원하기 위해 전체 자릿수 터치 패드의 경우 단일 사용 단추 누르기 임계값(페이지 0x0D, 사용량 0xB0)에 대한 SET_FEATURE 보고서 처리가 포함됩니다. 열거하는 동안 호스트는 설명자에서 지원되는 논리적 및 물리적 범위를 평가하고 기본값을 포함하여 설정 UI에 대해 노출된 옵션을 계산합니다. 호스트는 사용자가 지정한 단추 누르기 임계값을 디바이스에 전달하기 위해 SET_FEATURE 발급해야 합니다. 이 발급은 언제든지 발생할 수 있지만 설정이 변경될 때마다, 사용자 스위치가 발생하고, 디바이스가 열거되거나 다시 설정될 때 발생합니다.
논리 범위는 실제 값 범위에 선형으로 매핑되며 기본값을 중심으로 균등하게 간격을 지정하고 가운데에 배치해야 합니다. 논리 범위를 가져오면 다음 수식을 사용하여 기본값이 계산됩니다.
논리적 최소값, 기본값 및 논리 최대값은 Windows 설정 UI(각각 "낮음", "보통" 및 "높음" 지원)를 통해 사용자에게 노출되는 3가지 단추 누르기 힘 수준에 해당합니다.
단추 누름 임계값에 권장되는 물리적 범위는 최소값과 최대값 각각에 해당하는 110g에서 190g 사이의 범위를 커버하는 것입니다. 물리적 최대값 190g 및 물리적 최소 110g(따라서 위의 수식에 따라 기본값은 150g)을 활용하는 샘플 설명자는 샘플 보고서 설명자를 참조하세요.
Windows 정밀 터치패드 입력 보고서
Windows 정밀 터치패드 컬렉션을 통해 입력 보고서에서 접점 데이터를 추출하는 경우 호스트는 다음 표의 사용법을 사용합니다. 이 표에는 모든 필수 사용법 및 보고된 각각의 고유한 디지타이저 접점과 관련된 지원되는 선택적 사용법이 포함되어 있습니다.
| 멤버 | Description | 페이지 | ID | 필수/선택 |
|---|---|---|---|---|
| 접촉 ID | 지정된 프레임 내에서 접점을 고유하게 식별합니다. | 0x0D | 0x51 | 필수 |
| X | 접점 위치의 X 좌표입니다. | 0x01 | 0x30 | 필수 |
| Y | 접점 위치의 Y 좌표입니다. | 0x01 | 0x31 | 필수 |
| 팁 | 접점이 디지타이저 표면에 있는 경우 설정합니다. | 0x0D | 0x42 | 필수 |
| 신뢰 | 접점이 너무 커서 손가락이 될 수 없는 경우 설정합니다. | 0x0D | 0x47 | 필수 |
| Width | 접촉 주위 경계 상자의 너비 | 0x0D | 0x48 | 선택 사항 |
| 높이 | 접촉 주위 경계 상자의 높이 | 0x0D | 0x49 | 선택 사항 |
| 압력 | 사용자가 접점에 적용하는 압력의 양 | 0x0D | 0x30 | 선택 사항 |
| 방위각 | Z축에 대한 연락처의 시계 반대 방향 회전입니다. | 0x0D | 0x3F | 선택 사항 |
다음 표에는 모든 Windows 전체 자릿수 터치 패드 입력 보고서에 있어야 하는 모든 최상위 사용법이 포함되어 있습니다.
| 멤버 | Description | 페이지 | ID | 필수/선택 |
|---|---|---|---|---|
| 검사 시간 | 상대 검사 시간입니다. | 0x0D | 0x56 | 필수 |
| 접촉 수 | 지정된 보고서에서 보고할 총 접점 수입니다. | 0x0D | 0x54 | 필수 |
| 기계력 | 터치 패드 센서에 적용된 총 힘입니다. | 0x20 | 0x494 | 선택 사항 |
| 단추 1 | 디지타이저와 통합된 터치패드 단추의 단추 상태를 나타냅니다. | 0x09 | 0x01 | 선택 사항 |
| 단추 2 | 기본(기본 왼쪽) 클릭에 대한 외부 단추의 단추 상태를 나타냅니다. | 0x09 | 0x02 | 선택 사항 |
| 단추 3 | 보조(기본 오른쪽) 클릭에 대한 외부 단추의 단추 상태를 나타냅니다. | 0x09 | 0x03 | 선택 사항 |
접점 또는 보고 수준에서 모든 필수 사용법을 보고하지 않는 디바이스는 Windows 정밀 터치패드로 작동하지 않습니다. 필수 사용은 Windows 호스트에서 엄격하게 적용됩니다. 논리적 최댓값이 제한되지 않은 경우 값을 최적화하여 설명자 크기를 줄일 수 있습니다.
다음 섹션에서는 보고서의 멤버에 대한 정보를 제공합니다. 단추 멤버에 대한 자세한 내용은 단추, 보고서 수준 사용법을 참조하세요.
접점 ID
수명 주기 동안 보고서 내에서 접점을 고유하게 식별합니다. 디바이스에서 접점을 감지하고 보고하는 동안 접점 ID는 일정하게 유지되어야 합니다. 각각의 개별 동시 접촉에는 고유 식별자가 있어야 합니다. 이전에 연결된 접점이 더 이상 감지되거나 보고되지 않으면 식별자를 다시 사용할 수 있습니다. 필요한 숫자 범위가 없으며 사용된 값은 설명자에 지정된 논리적 최댓값으로만 제한됩니다.
X/Y
X 및 Y 값은 지정된 접점의 좌표를 보고합니다. Windows 정밀 터치패드는 각 접점에 대해 하나의 점을 보고해야 합니다. 다음 전역 항목을 X 및 Y 사용법 모두에 대해 지정해야 합니다.
논리적 최소값 및 논리 최대값(300DPI 입력 해상도보다 크거나 같은지 확인).
참고 전체 논리적 좌표 범위는 X 및 Y축 모두에서 보고할 수 있어야 합니다.
물리적 최소 및 물리적 최대값(디바이스 통합 - 크기 참조).
단위 및 단위 지수입니다.
0,0(x, y 값) 좌표는 터치패드의 왼쪽 위 모서리를 나타냅니다.
팁
접점이 표면에 있거나 디지타이저 표면을 떠난 경우를 나타내는 데 사용됩니다. 이것은 보고서 크기가 1비트인 주 항목으로 표시됩니다. 접점 보고서를 전달하는 경우 접점이 디지타이저 표면에 있을 때 비트를 설정하고, 접촉이 표면을 벗어날 때 비트를 지워야 합니다.
팁 스위치가 지워진 접점을 보고하는 경우 보고되는 (X, Y) 위치는 팁 스위치 세트로 보고된 마지막 위치와 동일해야 합니다.
앞의 다이어그램에서 설명한 예를 참조하는 경우 두 개의 접점을 Windows 정밀 터치패드에 배치한 다음, 일정 시간 후에 첫 번째 접점이 해제되고 두 번째 접점은 추가 시간 동안 표면에 남아 있습니다. 이 내용은 다음 표에 설명된 대로 보고됩니다.
| 보고서 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 접촉 수 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | 1 | 1 | 1 |
| 접점 1: 팁 스위치 | 1 | 1 | 1 | 1 | 1 | 0 | NR | NR | NR | NR | NR |
| 접점 1: X, Y | X₁, Y₁ | X₂, Y₂ | X₃, Y₃ | X₄, Y₄ | X₅, Y₅ | X₆, Y₆ | NR | NR | NR | NR | NR |
| 접점 2: 팁 스위치 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 접점 2: X, Y | X₁, Y₁ | X₂, Y₂ | X₃, Y₃ | X₄, Y₄ | X₅, Y₅ | X₆, Y₆ | X₇, Y₇ | X₈, Y₈ | X₉, Y₉ | X₁₀, Y₁₀ | X₁₁, Y₁₁ |
신뢰
접점이 의도적임을 나타내는 데 사용됩니다. 25mm보다 큰 차원(높이 또는 너비)이 접점에 있는 경우 이 비트가 'Off'로 설정되어 있는지 확인하기 위한 호환성 요구 사항 테스트입니다. 이는 의도하지 않은 접점이 아님을 의미합니다. Windows 정밀 터치패드 디바이스는 펌웨어 처리에서 접점을 숨기지 않아야 하지만, 모든 접점을 호스트에 전달하고 신뢰도를 표시해야 합니다. 그러면 호스트에서 신뢰도를 사용하여 실수로 인한 접점으로 추적합니다.
디바이스에서 접점이 의도하지 않은 것으로 확인되면 해당 접점 보고서 및 모든 후속 보고서에 대한 신뢰도 비트를 지워야 합니다. 접점이 의도하지 않은 것으로 분류될 때까지 디바이스는 보고서에서 해당 접점에 대한 신뢰도 비트를 설정해야 합니다.
너비 및 높이
너비 및 높이 사용법은 터치 패드 접촉 주위의 경계 상자의 너비와 높이를 나타냅니다. 보고된 값은 "UP(위로)" 이벤트가 보고되는 경우를 제외하고는 영(0)이 아니어야 하며, 여기서는 영(0)이어야 합니다.
압력
압력은 손가락이 디지타이저 표면에 가하는 힘을 측정한 것입니다. 압력에 허용되는 범위에는 제한이 없습니다.
방위각
방위각은 전체 원형 범위에서 Z축을 중심으로 커서의 시계 반대 방향 회전을 지정합니다. 실제 범위와 논리적 범위를 지정해야 합니다. 물리적 범위는 0에서 360 또는 라디안에 해당해야 하지만 장치는 접촉 줄임표가 하드웨어 기능에 따라 대칭이라고 가정하여 전체 범위 또는 절반 범위를 보고할 수 있습니다. 논리적 범위는 소수점 이하 두 자리까지 정확한 데이터를 전달할 수 있을 만큼 커야 합니다.
검사 시간
검사 시간은 상대 디지타이저 시간을 100µs 단위로 보고합니다. 검사 시간은 디바이스에서 비활성 기간 이후에 데이터 보고를 시작한 후 보고된 첫 번째 프레임의 델타를 나타냅니다. 수신된 첫 번째 검사 시간은 이후에 보고된 시간에 대한 기본 시간으로 처리됩니다. 보고된 검사 시간 사이의 델타는 디지타이저의 검사 빈도를 반영해야 합니다. 다른 사용법과 달리 호스트는 검사 시간 사용법에 대한 단위의 유연성을 허용하지 않습니다. 100µs 단위여야 합니다. 2바이트만 카운터에 할당되므로 값을 롤오버해야 합니다.
검사 시간 값은 프레임 내의 모든 접점에 대해 동일해야 합니다.
접점 수
연결된 팁 스위치에 관계없이 지정된 프레임에서 보고되는 접점 수를 나타내는 데 사용됩니다.
기계력
이는 개별 손가락에 대해 보고할 수 있는 선택적 압력과는 별도로 터치 패드 센서에 적용되는 총 힘을 보고하는 데 사용됩니다. 개별 접촉에 대한 압력도 보고되는 경우 단위, 단위 지수, 물리적 범위 및 논리 범위는 압력 및 기계적 힘에 대해 들여쓰기해야 하며 기계력 값은 SUM (Contact 1의 압력 + 연락처 2의 압력 + .... etc) 각 연락처에 대한 신뢰도 비트에 관계없이