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

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

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

La mémoire tampon qui reçoit le chemin d'accès PnP UTF-8 terminé par un caractère nul. Transmettez `nullptr` pour interroger la taille requise.

### Valeur de retour

Type : uint32\_t

La taille, en octets, de la mémoire tampon requise pour contenir le chemin d'accès PnP, y compris le caractère nul de fin.

## Remarques

La méthode écrit le chemin d'accès PnP dans *buffer* uniquement si *buffer* n'est pas `nullptr` et si *bufferByteCount* est supérieur ou égal à la taille requise. Sinon, la mémoire tampon n'est pas modifiée. Pour récupérer le chemin d'accès, appelez la méthode une première fois avec un *bufferByteCount* de 0 et un *buffer* de `nullptr` pour 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 d'accès PnP, la taille requise est 1 et la méthode écrit une chaîne vide.

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

Le chemin d'accès 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 d'accès 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 dans le membre `pnpPath` de la structure [GameInputDeviceInfo](https://docs.xbox.com/fr-CA/reference/input/gameinput/deprecated/structs/gameinputdeviceinfo.md) retournée par [IGameInputDevice::GetDeviceInfo](https://docs.xbox.com/fr-CA/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-CA/build/core-features/common/input/overviews/input-overview.md)\
[IGameInputDevice](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/igameinputdevice.md)\
[IGameInputDevice::GetDisplayName](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getdisplayname.md)\
[IGameInputDevice::GetContainerId](https://docs.xbox.com/fr-CA/reference/input/gameinput/interfaces/igameinputdevice/methods/igameinputdevice_getcontainerid.md)

## Historique des versions

| Version | Modifications |
| - | - |
| **v4** | Introduit. |


## Related topics

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