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

> Obtém o caminho de dispositivo Plug and Play do dispositivo de entrada como uma cadeia de caracteres UTF-8.

Obtém o caminho de dispositivo Plug and Play (PnP) do dispositivo de entrada como uma cadeia de caracteres UTF-8.

## Sintaxe

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

### Parâmetros

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

O tamanho, em bytes, do buffer apontado por *buffer*. Passe 0 para consultar o tamanho necessário.

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

O buffer que recebe o caminho PnP em UTF-8 terminado em nulo. Passe `nullptr` para consultar o tamanho necessário.

### Valor retornado

Tipo: uint32\_t

O tamanho, em bytes, do buffer necessário para conter o caminho PnP, incluindo o terminador nulo.

## Comentários

O método grava o caminho PnP em *buffer* somente se *buffer* não for `nullptr` e *bufferByteCount* for maior ou igual ao tamanho necessário. Caso contrário, o buffer não é modificado. Para recuperar o caminho, chame o método uma vez com *bufferByteCount* igual a 0 e *buffer* igual a `nullptr` para obter o tamanho necessário, aloque um buffer desse tamanho e, em seguida, chame o método novamente.

Se o dispositivo não tiver um caminho PnP, o tamanho necessário será 1 e o método gravará uma cadeia de caracteres vazia.

Use o caminho PnP para referenciar o dispositivo subjacente por meio de outras APIs. Como o caminho é codificado em UTF-8, converta-o para UTF-16 (por exemplo, usando `MultiByteToWideChar` com `CP_UTF8`) antes de passá-lo para APIs do Windows que esperam cadeias de caracteres largos.

O caminho PnP não muda durante o tempo de vida do objeto de dispositivo.

O exemplo a seguir recupera o caminho PnP de um 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());
}
```

No GameInput v3 e anteriores, essas informações estavam disponíveis no membro `pnpPath` da estrutura [GameInputDeviceInfo](https://docs.xbox.com/pt-BR/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) retornada por [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/pt-BR/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

## Requisitos

**Cabeçalho:** GameInput.h

**Biblioteca:** gameinput.lib

**Plataformas com suporte:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[Visão geral do GameInput](https://docs.xbox.com/pt-BR/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[IGameInputDevice::GetDisplayName](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)\
[IGameInputDevice::GetContainerId](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)

## Histórico de versões

| Versão | Alterações |
| - | - |
| **v4** | Introduzido. |


## Related topics

- [IGameInputDevice::GetDisplayName](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)
- [IGameInputDevice::GetContainerId](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)
- [Perguntas frequentes sobre o GameInput](https://docs.xbox.com/pt-BR/build/core-features/common/input/overviews/input-faq.md)
- [Combinação do GameInput com pilhas de entrada existentes](https://docs.xbox.com/pt-BR/build/core-features/common/input/porting/input-porting.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/pt-BR/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
