> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GameInputDeviceInfo (en desuso)

> Describe toda la información sobre un dispositivo de entrada (se quitó en v4).

> [!WARNING]
>
> **En desuso.** Esta estructura se quitó en GameInput v4 y no está disponible en la API actual. Use en su lugar los métodos captadores individuales de [IGameInputDevice](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md). Consulte la tabla de correspondencias en la sección Comentarios.

Describe toda la información sobre un dispositivo de entrada.

## Sintaxis

```cpp theme={null}
struct GameInputDeviceInfo
{
    uint16_t               vendorId;
    uint16_t               productId;
    uint16_t               revisionNumber;
    GameInputUsage         usage;
    GameInputVersion       hardwareVersion;
    GameInputVersion       firmwareVersion;
    APP_LOCAL_DEVICE_ID    deviceId;
    APP_LOCAL_DEVICE_ID    deviceRootId;
    GameInputDeviceFamily  deviceFamily;
    GameInputKind          supportedInput;
    GameInputRumbleMotors  supportedRumbleMotors;
    GameInputSystemButtons supportedSystemButtons;
    GUID                   containerId;
    const char*            displayName;
    const char*            pnpPath;

    const GameInputKeyboardInfo* keyboardInfo;
    const GameInputMouseInfo*    mouseInfo;
    const GameInputSensorsInfo*  sensorsInfo;

    const GameInputControllerInfo*  controllerInfo;
    const GameInputArcadeStickInfo* arcadeStickInfo;
    const GameInputFlightStickInfo* flightStickInfo;
    const GameInputGamepadInfo*     gamepadInfo;
    const GameInputRacingWheelInfo* racingWheelInfo;

    uint32_t                               forceFeedbackMotorCount;
    const GameInputForceFeedbackMotorInfo* forceFeedbackMotorInfo;

    uint32_t                            inputReportCount;
    const GameInputRawDeviceReportInfo* inputReportInfo;

    uint32_t                            outputReportCount;
    const GameInputRawDeviceReportInfo* outputReportInfo;
};
```

### Miembros

*vendorId*\

Tipo: uint16\_t

Identifica el proveedor del dispositivo de entrada.

*productId*\

Tipo: uint16\_t

Identifica el dispositivo de entrada como producto.

*revisionNumber*\

Tipo: uint16\_t

Número de revisión de hardware del dispositivo, si lo hay.

*usage*\

Tipo: [GameInputUsage](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputusage.md)

Índice de dos partes que describe la entrada usada.

*hardwareVersion*\

Tipo: [GameInputVersion](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputversion.md)

Versión de hardware del dispositivo, si la hay.

*firmwareVersion*\

Tipo: [GameInputVersion](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputversion.md)

Versión de firmware del dispositivo, si la hay.

*deviceId*\

Tipo: APP\_LOCAL\_DEVICE\_ID

Id. de dispositivo del dispositivo de entrada.

*deviceRootId*\

Tipo: APP\_LOCAL\_DEVICE\_ID

Id. raíz del dispositivo de entrada.

*deviceFamily*\

Tipo: [GameInputDeviceFamily](https://docs.xbox.com/es/reference/input/gameinput/enums/gameinputdevicefamily.md)

Designa la familia de dispositivos de entrada a la que pertenece el dispositivo de entrada.

*supportedInput*\

Tipo: [GameInputKind](https://docs.xbox.com/es/reference/input/gameinput/enums/gameinputkind.md)

Describe el tipo o los tipos de entrada que admite el dispositivo.

*supportedRumbleMotors*\

Tipo: [GameInputRumbleMotors](https://docs.xbox.com/es/reference/input/gameinput/enums/gameinputrumblemotors.md)

Describe los motores de vibración accesibles del dispositivo, si los hay.

*supportedSystemButtons*\

Tipo: [GameInputSystemButtons](https://docs.xbox.com/es/reference/input/gameinput/enums/gameinputsystembuttons.md)

Describe los botones disponibles para controlar el sistema, a menudo fuera de un juego.

*containerId*\

Tipo: GUID

Id. de contenedor del dispositivo de entrada.

*displayName*\

Tipo: const char\*

Describe el nombre descriptivo del dispositivo.

*pnpPath*\

Tipo: const char\*

Describe la funcionalidad plug and play del dispositivo. Use esta ruta de acceso para hacer referencia a los dispositivos subyacentes a través de otras API.

*keyboardInfo*\

Tipo: [GameInputKeyboardInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputkeyboardinfo.md) const \*

Información sobre un dispositivo de entrada de teclado.

*mouseInfo*\

Tipo: [GameInputMouseInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputmouseinfo.md) const \*

Información sobre un dispositivo de entrada de mouse.

*sensorsInfo*\

Tipo: [GameInputSensorsInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputsensorsinfo.md) const \*

Información sobre los sensores del dispositivo.

*controllerInfo*\

Tipo: [GameInputControllerInfo](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputcontrollerinfo.md) const \*

Información sobre el dispositivo de entrada de mando genérico. El mando representa los ejes, botones e interruptores sin procesar y sin asignar de un dispositivo.

*arcadeStickInfo*\

Tipo: [GameInputArcadeStickInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputarcadestickinfo.md) const \*

Información sobre un dispositivo de entrada de stick arcade.

*flightStickInfo*\

Tipo: [GameInputFlightStickInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputflightstickinfo.md) const \*

Información sobre un dispositivo de entrada de palanca de vuelo.

*gamepadInfo*\

Tipo: [GameInputGamepadInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputgamepadinfo.md) const \*

Información sobre un dispositivo de entrada de mando.

*racingWheelInfo*\

Tipo: [GameInputRacingWheelInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputracingwheelinfo.md) const \*

Información sobre un dispositivo de entrada de volante de carreras.

*forceFeedbackMotorCount*\

Tipo: uint32\_t

El número de motores de retroalimentación de fuerza del dispositivo de entrada.

*forceFeedbackMotorInfo*\

Tipo: [GameInputForceFeedbackMotorInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputforcefeedbackmotorinfo.md) const \*

Información sobre todos los motores de retroalimentación de fuerza de un dispositivo.

*inputReportCount*\

Tipo: uint32\_t

Número de informes de entrada del dispositivo.

*inputReportInfo*\

Tipo: [GameInputRawDeviceReportInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputrawdevicereportinfo.md) const \*

Objeto de información de informe de entrada.

*outputReportCount*\

Tipo: uint32\_t

Número de informes de salida del dispositivo.

*outputReportInfo*\

Tipo: [GameInputRawDeviceReportInfo](https://docs.xbox.com/es/reference/input/gameinput/structs/gameinputrawdevicereportinfo.md) const \*

Informe de salida.

## Comentarios

Todos los miembros de cadena de esta estructura usan codificación UTF-8.

El `deviceId` es un id. local de la aplicación: un valor hash de 256 bits que identifica de forma única el dispositivo. Este id. siempre permanece igual para un dispositivo determinado, incluso entre ejecuciones de una aplicación o reinicios del sistema, siempre que el dispositivo se conecte al mismo puerto USB. La aplicación genera los hashes de id. locales de la aplicación, en parte con información específica de la aplicación que llama y del sistema.

El `deviceRootId` es otro id. local de la aplicación, que identifica el nodo de dispositivo raíz para los dispositivos compuestos. Esto permite a las aplicaciones razonar sobre la relación de los dispositivos individuales. Por ejemplo, algunos teclados para juegos eluden el límite heredado de USB de ocho pulsaciones de teclas simultáneas exponiéndose como un dispositivo compuesto con varios nodos de teclado. Estos nodos se combinan en el teclado del "sistema", por lo que esto suele ser transparente para el usuario. Pero al procesar la entrada por teclado mediante la API de GameInput, comprender esto permite a las aplicaciones evitar suposiciones incorrectas (por ejemplo, que una pulsación de tecla siempre procede de un dispositivo específico) al asignar funciones a las pulsaciones de teclas. El `deviceId` y el `deviceRootId` son iguales si el dispositivo no es una de las muchas interfaces de un dispositivo compuesto.

La cadena `displayName` contiene un nombre "descriptivo" del dispositivo. Puede mostrar esta cadena en la interfaz de usuario de una aplicación, pero no hay garantía de que esté localizada. Esta falta de localización proviene de que la API de GameInput busca esta cadena en varias ubicaciones, y una de las últimas alternativas proviene del firmware del dispositivo.

Los campos finales de la estructura `GameInputDeviceInfo` son punteros a matrices de tamaño variable con información sobre el dispositivo, como información sobre la compatibilidad con retroalimentación de fuerza y retroalimentación háptica. Los punteros `NULL` indican que la característica correspondiente no está disponible o no es compatible con el dispositivo. Un campo correspondiente de la estructura indica el número de elementos de cada matriz, como se indica en las anotaciones de lenguaje de anotación de origen (SAL).

Ningún dispositivo de entrada proporciona valores legibles para todos los atributos. Algunos dispositivos incluyen valores solo para los atributos pertinentes. El sistema devuelve esta información a través de [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

### Métodos de reemplazo en GameInput v4

En GameInput v4, cada miembro de `GameInputDeviceInfo` se reemplaza por un método captador de [IGameInputDevice](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md).

| Miembro de v3 | Reemplazo en v4 |
| - | - |
| `vendorId` | [GetVendorId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getvendorid.md) |
| `productId` | [GetProductId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getproductid.md) |
| `revisionNumber` | [GetRevisionNumber](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getrevisionnumber.md) |
| `usage` | [GetUsage](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getusage.md) |
| `hardwareVersion` | [GetHardwareVersion](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_gethardwareversion.md) |
| `firmwareVersion` | [GetFirmwareVersion](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getfirmwareversion.md) |
| `deviceId` | [GetDeviceId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceid.md) |
| `deviceRootId` | [GetDeviceRootId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicerootid.md) |
| `deviceFamily` | [GetDeviceFamily](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md) |
| `supportedInput` | [GetSupportedInput](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedinput.md) |
| `supportedRumbleMotors` | [GetSupportedRumbleMotors](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedrumblemotors.md) |
| `supportedSystemButtons` | [GetSupportedSystemButtons](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsupportedsystembuttons.md) |
| `containerId` | [GetContainerId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md) |
| `displayName` | [GetDisplayName](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md) |
| `pnpPath` | [GetPnpPath](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getpnppath.md) |
| `keyboardInfo` | [GetKeyboardInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getkeyboardinfo.md) |
| `mouseInfo` | [GetMouseInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getmouseinfo.md) |
| `sensorsInfo` | [GetSensorsInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getsensorsinfo.md) |
| `controllerInfo` | [GetControllerAxisCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxiscount.md), [GetControllerAxisLabels](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrolleraxislabels.md), [GetControllerButtonCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttoncount.md), [GetControllerButtonLabels](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerbuttonlabels.md), [GetControllerSwitchCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchcount.md), [GetControllerSwitchInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontrollerswitchinfo.md) |
| `arcadeStickInfo` | [GetArcadeStickInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getarcadestickinfo.md) |
| `flightStickInfo` | [GetFlightStickInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getflightstickinfo.md) |
| `gamepadInfo` | [GetGamepadInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getgamepadinfo.md) |
| `racingWheelInfo` | [GetRacingWheelInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getracingwheelinfo.md) |
| `forceFeedbackMotorCount` | [GetForceFeedbackMotorCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getforcefeedbackmotorcount.md) |
| `forceFeedbackMotorInfo` | [GetForceFeedbackMotorInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getforcefeedbackmotorinfo.md) |
| `inputReportCount` | [GetInputReportCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getinputreportcount.md) |
| `inputReportInfo` | [GetInputReportInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getinputreportinfo.md) |
| `outputReportCount` | [GetOutputReportCount](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getoutputreportcount.md) |
| `outputReportInfo` | [GetOutputReportInfo](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getoutputreportinfo.md) |

Los miembros de puntero para información específica del dispositivo, como `keyboardInfo` y `gamepadInfo`, eran `NULL` cuando el dispositivo no tenía ese tipo de entrada. Los captadores de v4 correspondientes, como `GetKeyboardInfo` y `GetGamepadInfo`, devuelven `false` en ese caso.

## Documentación conceptual

* [Retroalimentación de fuerza en GameInput](https://docs.xbox.com/es/build/core-features/common/input/advanced/input-forcefeedback.md)
* [Dispositivos de GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-devices.md)

## Consulte también

[Miembros de la API de GameInput en desuso](https://docs.xbox.com/es/reference/input/gameinput/deprecated/gameinput_deprecated_members.md)\
[IGameInputDevice](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[Información general de la API de entrada](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-overview.md)\
[GameInput](https://docs.xbox.com/es/reference/input/gameinput/gameinput_members.md)\
[IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md)

## Historial de versiones

| Versión | Cambios |
| - | - |
| **v4** | Se quitó. |
| **v3** | Se reemplazó `uiNavigationInfo` por el puntero `controllerInfo`. Se reemplazaron los campos independientes de recuento e información de ejes/botones/interruptores por `controllerInfo`. Se agregaron `inputReportCount`/`inputReportInfo` y `outputReportCount`/`outputReportInfo`. Se quitó `hapticFeedbackMotorInfo`. |
| **v2** | **Se agregaron** `revisionNumber`, `hardwareVersion`, `firmwareVersion`, `containerId` (GUID) y el puntero `sensorsInfo`. |
| **v1** | **Simplificación importante** con respecto a v0: se quitaron `infoSize`, `interfaceNumber`, `collectionNumber`, `capabilities` (GameInputDeviceCapabilities) y los campos de recuento táctiles/hápticos/de cadenas/de descriptores; se agregaron `supportedSystemButtons`, `displayName` como `const char*` y `pnpPath`. |
| **v0** | Se introdujo. |

## Apéndice: versiones anteriores

### v2

```cpp theme={null}
struct GameInputDeviceInfo
{
    uint16_t               vendorId;
    uint16_t               productId;
    uint16_t               revisionNumber;
    GameInputUsage         usage;
    GameInputVersion       hardwareVersion;
    GameInputVersion       firmwareVersion;
    APP_LOCAL_DEVICE_ID    deviceId;
    APP_LOCAL_DEVICE_ID    deviceRootId;
    GameInputDeviceFamily  deviceFamily;
    GameInputKind          supportedInput;
    GameInputRumbleMotors  supportedRumbleMotors;
    GameInputSystemButtons supportedSystemButtons;
    GUID                   containerId;
    const char*            displayName;
    const char*            pnpPath;

    const GameInputKeyboardInfo* keyboardInfo;
    const GameInputMouseInfo*    mouseInfo;
    const GameInputSensorsInfo*  sensorsInfo;

    const GameInputUiNavigationInfo* uiNavigationInfo;
    const GameInputArcadeStickInfo*  arcadeStickInfo;
    const GameInputFlightStickInfo*  flightStickInfo;
    const GameInputGamepadInfo*      gamepadInfo;
    const GameInputRacingWheelInfo*  racingWheelInfo;

    uint32_t                              controllerAxisCount;
    const GameInputControllerAxisInfo*    controllerAxisInfo;
    uint32_t                              controllerButtonCount;
    const GameInputControllerButtonInfo*  controllerButtonInfo;
    uint32_t                              controllerSwitchCount;
    const GameInputControllerSwitchInfo*  controllerSwitchInfo;

    uint32_t                               forceFeedbackMotorCount;
    const GameInputForceFeedbackMotorInfo* forceFeedbackMotorInfo;

    uint32_t                                hapticFeedbackMotorCount;
    const GameInputHapticFeedbackMotorInfo* hapticFeedbackMotorInfo;
};
```

### v1

```cpp theme={null}
struct GameInputDeviceInfo
{
    uint16_t               vendorId;
    uint16_t               productId;
    GameInputUsage         usage;
    APP_LOCAL_DEVICE_ID    deviceId;
    APP_LOCAL_DEVICE_ID    deviceRootId;
    GameInputDeviceFamily  deviceFamily;
    GameInputKind          supportedInput;
    GameInputRumbleMotors  supportedRumbleMotors;
    GameInputSystemButtons supportedSystemButtons;
    const char*            displayName;
    const char*            pnpPath;

    const GameInputKeyboardInfo* keyboardInfo;
    const GameInputMouseInfo*    mouseInfo;

    const GameInputUiNavigationInfo* uiNavigationInfo;
    const GameInputArcadeStickInfo*  arcadeStickInfo;
    const GameInputFlightStickInfo*  flightStickInfo;
    const GameInputGamepadInfo*      gamepadInfo;
    const GameInputRacingWheelInfo*  racingWheelInfo;

    uint32_t                              controllerAxisCount;
    const GameInputControllerAxisInfo*    controllerAxisInfo;
    uint32_t                              controllerButtonCount;
    const GameInputControllerButtonInfo*  controllerButtonInfo;
    uint32_t                              controllerSwitchCount;
    const GameInputControllerSwitchInfo*  controllerSwitchInfo;

    uint32_t                               forceFeedbackMotorCount;
    const GameInputForceFeedbackMotorInfo* forceFeedbackMotorInfo;

    uint32_t                                hapticFeedbackMotorCount;
    const GameInputHapticFeedbackMotorInfo* hapticFeedbackMotorInfo;
};
```


## Related topics

- [GameInputMotionInfo (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputmotioninfo.md)
- [GameInputControllerInfo (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputcontrollerinfo.md)
- [GetDeviceInfo (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md)
- [GameInputString (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputstring.md)
- [GameInputRawDeviceReportItemInfo (en desuso)](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputrawdevicereportiteminfo.md)
