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

> Obtient le chemin d'accès Plug-and-Play du périphérique d'entrée sous forme de chaîne UTF-8.

Obtient le chemin d'accès Plug-and-Play (PnP) du périphérique d'entrée sous forme de chaîne UTF-8.

## Syntaxe

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

### Paramètres

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

Taille, en octets, de la mémoire tampon pointée par *buffer*. Transmettez 0 pour demander la taille requise.

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

Mémoire tampon qui reçoit le chemin PnP UTF-8 terminé par un caractère null. Transmettez `nullptr` pour demander la taille requise.

### Valeur de retour

Type : uint32\_t

Taille, en octets, de la mémoire tampon nécessaire pour contenir le chemin PnP, y compris le caractère null de fin.

## Remarques

La méthode écrit le chemin PnP dans *buffer* uniquement si *buffer* n'est pas `nullptr` et si *bufferByteCount* est supérieur ou égal à la taille requise. Dans le cas contraire, la mémoire tampon n'est pas modifiée. Pour récupérer le chemin, appelez la méthode une première fois avec un *bufferByteCount* de 0 et un *buffer* de `nullptr` afin d'obtenir la taille requise, allouez une mémoire tampon de cette taille, puis appelez de nouveau la méthode.

Si le périphérique n'a pas de chemin PnP, la taille requise est de 1 et la méthode écrit une chaîne vide.

Utilisez le chemin PnP pour référencer le périphérique sous-jacent via d'autres API. Comme le chemin est encodé en UTF-8, convertissez-le en UTF-16 (par exemple, à l'aide de `MultiByteToWideChar` avec `CP_UTF8`) avant de le transmettre à des API Windows qui attendent des chaînes de caractères larges.

Le chemin PnP ne change pas pendant toute la durée de vie de l'objet périphérique.

L'exemple suivant récupère le chemin PnP d'un périphérique.

```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());
}
```

Dans GameInput v3 et les versions antérieures, ces informations étaient disponibles via le membre `pnpPath` de la structure [GameInputDeviceInfo](https://docs.xbox.com/fr/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) retournée par [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/fr/reference/input/gameinput/deprecated/interfaces/igameinputdevice/methods/igameinputdevice_getdeviceinfo.md).

## Configuration requise

**En-tête :** GameInput.h

**Bibliothèque :** gameinput.lib

**Plateformes prises en charge :** Windows, consoles de la famille XBOX One et consoles XBOX Series

## Voir aussi

[Vue d'ensemble de GameInput](https://docs.xbox.com/fr/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[IGameInputDevice::GetDisplayName](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)\
[IGameInputDevice::GetContainerId](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduite. |


## Related topics

- [IGameInputDevice::GetDisplayName](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)
- [IGameInputDevice::GetContainerId](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)
- [Questions fréquentes sur GameInput](https://docs.xbox.com/fr/build/core-features/common/input/overviews/input-faq.md)
- [Combinaison de GameInput avec des piles d'entrée existantes](https://docs.xbox.com/fr/build/core-features/common/input/porting/input-porting.md)
- [IGameInputDevice::GetDeviceFamily](https://docs.xbox.com/fr/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdevicefamily.md)
