> ## 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.

# IGameInputDevice::GetPnpPath

> Obtiene la ruta de acceso de dispositivo Plug and Play (PnP) del dispositivo de entrada como una cadena UTF-8.

Obtiene la ruta de acceso de dispositivo Plug and Play (PnP) del dispositivo de entrada como una cadena UTF-8.

## Sintaxis

```cpp theme={null}
uint32_t GetPnpPath(
    uint32_t bufferByteCount,
    char* buffer
);
```

### Parámetros

*bufferByteCount*   \_In\_\
Tipo: uint32\_t

El tamaño, en bytes, del búfer al que apunta *buffer*. Pase 0 para consultar el tamaño necesario.

*buffer*   \_Out\_writes\_bytes\_opt\_(bufferByteCount)\
Tipo: char\*

El búfer que recibe la ruta de acceso PnP UTF-8 terminada en NULL. Pase `nullptr` para consultar el tamaño necesario.

### Valor devuelto

Tipo: uint32\_t

El tamaño, en bytes, del búfer necesario para contener la ruta de acceso PnP, incluido el terminador NULL.

## Comentarios

El método escribe la ruta de acceso PnP en *buffer* solo si *buffer* no es `nullptr` y *bufferByteCount* es mayor o igual que el tamaño necesario. De lo contrario, el búfer no se modifica. Para recuperar la ruta de acceso, llame al método una vez con un valor de *bufferByteCount* de 0 y un valor de *buffer* de `nullptr` para obtener el tamaño necesario, asigne un búfer de ese tamaño y, a continuación, vuelva a llamar al método.

Si el dispositivo no tiene una ruta de acceso PnP, el tamaño necesario es 1 y el método escribe una cadena vacía.

Use la ruta de acceso PnP para hacer referencia al dispositivo subyacente a través de otras API. Dado que la ruta de acceso está codificada como UTF-8, conviértala a UTF-16 (por ejemplo, mediante `MultiByteToWideChar` con `CP_UTF8`) antes de pasarla a las API de Windows que esperan cadenas de caracteres anchos.

La ruta de acceso PnP no cambia durante la vida útil del objeto de dispositivo.

En el siguiente ejemplo se recupera la ruta de acceso PnP de un dispositivo.

```cpp theme={null}
std::string GetDevicePnpPath(IGameInputDevice* device)
{
    const uint32_t size = device->GetPnpPath(0, nullptr);
    if (size == 0)
    {
        return {};
    }

    std::vector<char> buffer(size);
    device->GetPnpPath(size, buffer.data());

    return std::string(buffer.data());
}
```

En GameInput v3 y versiones anteriores, esta información estaba disponible en el miembro `pnpPath` de la estructura [GameInputDeviceInfo](https://docs.xbox.com/es/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) devuelta por [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/es/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

## Requisitos

**Encabezado:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

[Información general de GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[IGameInputDevice::GetDisplayName](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)\
[IGameInputDevice::GetContainerId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)

## Historial de versiones

| Versión | Cambios |
| - | - |
| **v4** | Se introdujo. |


## Related topics

- [IGameInputDevice::GetDisplayName](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)
- [IGameInputDevice::GetContainerId](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)
- [Preguntas más frecuentes sobre GameInput](https://docs.xbox.com/es/build/core-features/common/input/overviews/input-faq.md)
- [Combinación de GameInput con pilas de entrada existentes](https://docs.xbox.com/es/build/core-features/common/input/porting/input-porting.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/es/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
