메인 콘텐츠로 건너뛰기
사용되지 않음. 이 구조체는 GameInput v4에서 제거되었으며 현재 API에서는 사용할 수 없습니다. 대신 IGameInputDevice의 개별 getter 메서드를 사용하세요. 설명 섹션의 매핑 표를 참조하세요.
입력 장치에 대한 모든 정보를 설명합니다.

구문

멤버

vendorId
형식: uint16_t
입력 장치의 공급업체를 식별합니다. productId
형식: uint16_t
입력 장치를 제품으로 식별합니다. revisionNumber
형식: uint16_t
장치의 하드웨어 개정 번호(있는 경우). usage
형식: GameInputUsage
사용된 입력을 설명하는 두 부분으로 구성된 인덱스입니다. hardwareVersion
형식: GameInputVersion
장치의 하드웨어 버전(있는 경우). firmwareVersion
형식: GameInputVersion
장치의 펌웨어 버전(있는 경우). deviceId
형식: APP_LOCAL_DEVICE_ID
입력 장치의 장치 ID입니다. deviceRootId
형식: APP_LOCAL_DEVICE_ID
입력 장치의 루트 ID입니다. deviceFamily
형식: GameInputDeviceFamily
입력 장치가 속하는 입력 장치 계열을 지정합니다. supportedInput
형식: GameInputKind
장치가 지원하는 입력의 유형을 설명합니다. supportedRumbleMotors
형식: GameInputRumbleMotors
장치에서 사용 가능한 럼블 모터(있는 경우)를 설명합니다. supportedSystemButtons
형식: GameInputSystemButtons
시스템을 제어하는 데 사용할 수 있는 버튼(주로 게임 외부에서 사용)을 설명합니다. containerId
형식: GUID
입력 장치의 컨테이너 ID입니다. displayName
형식: const char*
장치의 친숙한 이름을 설명합니다. pnpPath
형식: const char*
장치의 플러그 앤 플레이 기능을 설명합니다. 다른 API를 통해 기본 장치를 참조하려면 이 경로를 사용하세요. keyboardInfo
형식: GameInputKeyboardInfo const *
키보드 입력 장치에 대한 정보입니다. mouseInfo
형식: GameInputMouseInfo const *
마우스 입력 장치에 대한 정보입니다. sensorsInfo
형식: GameInputSensorsInfo const *
장치의 센서에 대한 정보입니다. controllerInfo
형식: GameInputControllerInfo const *
일반 컨트롤러 입력 장치에 대한 정보입니다. 컨트롤러는 장치의 원시 매핑되지 않은 축, 버튼 및 스위치를 나타냅니다. arcadeStickInfo
형식: GameInputArcadeStickInfo const *
아케이드 스틱 입력 장치에 대한 정보입니다. flightStickInfo
형식: GameInputFlightStickInfo const *
플라이트 스틱 입력 장치에 대한 정보입니다. gamepadInfo
형식: GameInputGamepadInfo const *
게임패드 입력 장치에 대한 정보입니다. racingWheelInfo
형식: GameInputRacingWheelInfo const *
레이싱 휠 입력 장치에 대한 정보입니다. forceFeedbackMotorCount
형식: uint32_t
입력 장치의 포스 피드백 모터 수입니다. forceFeedbackMotorInfo
형식: GameInputForceFeedbackMotorInfo const *
장치의 모든 포스 피드백 모터에 대한 정보입니다. inputReportCount
형식: uint32_t
장치의 입력 보고서 수입니다. inputReportInfo
형식: GameInputRawDeviceReportInfo const *
입력 보고서 정보 개체입니다. outputReportCount
형식: uint32_t
장치의 출력 보고서 수입니다. outputReportInfo
형식: GameInputRawDeviceReportInfo const *
출력 보고서입니다.

설명

이 구조체의 모든 문자열 멤버는 UTF-8 인코딩을 사용합니다. deviceId는 애플리케이션 로컬 ID로, 장치를 고유하게 식별하는 256비트 해시 값입니다. 이 ID는 장치가 동일한 USB 포트에 연결되어 있는 한, 애플리케이션 실행이나 시스템 재부팅 간에도 특정 장치에 대해 항상 동일하게 유지됩니다. 애플리케이션 로컬 ID 해시는 호출 애플리케이션과 시스템에 특정한 정보를 부분적으로 사용하여 애플리케이션이 생성합니다. deviceRootId는 또 다른 애플리케이션 로컬 ID로, 복합 장치의 루트 장치 노드를 식별합니다. 이를 통해 애플리케이션이 개별 장치 간의 관계를 파악할 수 있습니다. 예를 들어, 일부 게이밍 키보드는 여러 키보드 노드를 가진 복합 장치로 자신을 노출하여 동시 8개 키 입력이라는 레거시 USB 제한을 우회합니다. 이러한 노드는 “시스템” 키보드로 병합되므로 일반적으로 사용자에게는 투명합니다. 그러나 GameInput API를 통해 키보드별 입력을 처리할 때 이 점을 이해하면 애플리케이션이 기능을 키 입력에 매핑할 때 부적절한 가정(예: 키 입력이 항상 특정 장치에서 온다는 가정)을 피할 수 있습니다. 장치가 복합 장치의 여러 인터페이스 중 하나가 아닌 경우 deviceId와 deviceRootId는 동일합니다. displayName 문자열에는 장치의 “친숙한” 이름이 포함됩니다. 이 문자열은 애플리케이션의 UI에 표시할 수 있지만 현지화된다는 보장은 없습니다. 이렇게 현지화되지 않는 이유는 GameInput API가 이 문자열을 여러 위치에서 검색하며, 최종 폴백 중 하나가 장치의 펌웨어에서 오기 때문입니다. GameInputDeviceInfo 구조체의 마지막 필드는 포스 피드백 및 햅틱 피드백 지원과 같은 장치에 관한 정보의 가변 크기 배열에 대한 포인터입니다. NULL 포인터는 해당 기능이 장치에서 사용할 수 없거나 지원되지 않음을 나타냅니다. 각 배열의 요소 수는 SAL(Source Annotation Language) 주석에 명시된 대로 구조체의 해당 필드로 표시됩니다. 모든 속성에 대한 읽을 수 있는 값을 제공하는 입력 장치는 없습니다. 일부 장치는 관련 속성에 대한 값만 포함합니다. 시스템은 IGameInputDevice::GetDeviceInfo를 통해 이 정보를 반환합니다.

GameInput v4의 대체 메서드

GameInput v4에서는 GameInputDeviceInfo의 각 멤버가 IGameInputDevice의 getter 메서드로 대체됩니다. keyboardInfo 및 gamepadInfo와 같은 장치별 정보에 대한 포인터 멤버는 장치에 해당 종류의 입력이 없을 때 NULL이었습니다. 이 경우 GetKeyboardInfo 및 GetGamepadInfo와 같은 대응하는 v4 getter는 false를 반환합니다.

개념 문서

함께 보기

사용되지 않는 GameInput API 멤버
IGameInputDevice
Input API 개요
GameInput
IGameInputDevice::GetDeviceInfo

버전 기록

부록: 이전 버전

v2

v1

마지막 수정일 2026년 11월 6일