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

# XPersistentLocalStorageGetPath

> XPersistentLocalStorageGetPath

# XPersistentLocalStorageGetPath

Retorna o caminho específico do jogo para o armazenamento local persistente (PLS) no dispositivo.

## Sintaxe

```cpp theme={null}
HRESULT XPersistentLocalStorageGetPath(  
         size_t pathSize,  
         char* path,  
         size_t* pathUsed  
)  
```

### Parâmetros

*pathSize*   \_In\_\
Tipo: size\_t

O número de caracteres no buffer fornecido para o caminho do PLS. Para obter esse valor, chame [XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize).

*path*   \_Out\_writes\_to\_(pathSize,*pathUsed)\
Tipo: char*

O caminho do PLS no qual seu jogo pode gravar dados.

*pathUsed*   \_Out\_opt\_\
Tipo: size\_t\*

O número de caracteres gravados no buffer fornecido.

### Valor retornado

Tipo: [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

Retorna **S\_OK** se for bem-sucedida; caso contrário, retorna um código de erro. Para obter uma lista de códigos de erro, consulte [Códigos de erro](/pt-BR/reference/errorcodes). Se a função falhar porque *pathSize* é menor que o comprimento do caminho do PLS, o valor retornado será definido como **E\_FAIL** para dispositivos XBOX e como **HRESULT\_FROM\_WIN32(ERROR\_INSUFFICIENT\_BUFFER)** para dispositivos PC.

## Comentários

<Note>Não é seguro chamar esta função em um thread sensível ao tempo. Para obter mais informações, consulte [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads).</Note>

Os jogos podem exigir PLS para tarefas como espaço de preparação, DLC no jogo e geração de conteúdo sob demanda. Embora o espaço seja mantido entre as ativações do jogo, ele também pode ser excluído pelos usuários. Para obter mais informações sobre o PLS, consulte [Armazenamento local](/pt-BR/build/console-features/storage/local-storage)

O PLS é acessado e gerenciado de acordo com a família do dispositivo. Para dispositivos XBOX, fornecemos acesso a uma pasta montada na raiz de uma unidade. A quantidade de espaço de armazenamento provisionada para essa pasta é especificada no arquivo MicrosoftGame.config do seu jogo. O espaço provisionado fica disponível e sempre presente durante uma inicialização do seu jogo. Para liberar espaço, os usuários podem excluir o espaço provisionado sem desinstalar o jogo, quando o jogo não estiver em execução; no entanto, quando o jogo estiver em execução, a disponibilidade do armazenamento é garantida. Para que esse espaço seja provisionado para dispositivos XBOX, você deve ter uma entrada correspondente no seu arquivo MicrosoftGame.config.

Para dispositivos PC, fornecemos acesso ao local de uma pasta de armazenamento local no PC, mas o espaço não é provisionado especificamente para o seu jogo. Os usuários podem excluir esse espaço mesmo enquanto o jogo estiver em execução. A disponibilidade do armazenamento não é garantida, e uma entrada no seu arquivo MicrosoftGame.config não é necessária para reivindicar espaço de armazenamento. Primeiro, você deve confirmar que o espaço disponível na pasta de armazenamento local é suficiente para as finalidades do seu jogo.

Antes de chamar esta função para recuperar o caminho do PLS, chame a função [XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize) para obter o número de caracteres no caminho do PLS; em seguida, forneça esse valor no parâmetro *pathSize* e aloque pelo menos essa quantidade de caracteres para o parâmetro *path*. Ocorrerá um erro se forem especificados em *pathSize* menos caracteres do que os contidos no caminho do PLS.

O exemplo a seguir ilustra como usar as funções **XPersistentLocalStorageGetPathSize** e **XPersistentLocalStorageGetPath** para obter o caminho do PLS para o seu jogo.

```cpp theme={null}
// Confirm that all of the features needed to run asynchronous tasks on 
// task queues are available.
LPCSTR Game::CheckPLSPath()
{
    // Confirm the length of the path to the local storage folder.
    LPCSTR returnPath = "";
    size_t pathSize;
    if (SUCCEEDED(XPersistentLocalStorageGetPathSize(&pathSize)))
    {
        char * path = new char[pathSize];
        size_t * pathUsed = new size_t;
        if (path != nullptr)
        {
            // Get the path to the local storage folder.
            if (SUCCEEDED(XPersistentLocalStorageGetPath(pathSize, path, pathUsed))) 
            {
                // Just to be safe, copy the bytes used in the buffer 
                // to a separate string.
                char * actualPath = new char[*pathUsed];
                strncpy(actualPath, path, *pathUsed);
                returnPath = actualPath;
            }
        }
    };

    return returnPath;
}
```

## Requisitos

**Cabeçalho:** XPersistentLocalStorage.h

**Biblioteca:** xgameruntime.lib

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

## Documentação conceitual

* [Armazenamento local no console XBOX](/pt-BR/build/console-features/storage/local-storage)
* [Threads sensíveis ao tempo](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## Confira também

[XPersistentLocalStorageGetPathSize](/pt-BR/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize)\
[XPersistentLocalStorage](/pt-BR/reference/system/xpersistentlocalstorage/xpersistentlocalstorage_members)\
[Como usar o novo arquivo MicrosoftGame.config](/pt-BR/build/core-features/common/game-config/MicrosoftGameConfig-toc)


## Related topics

- [XPersistentLocalStorageGetPath](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpath.md)
- [XPersistentLocalStorageGetPathSize](/reference/system/xpersistentlocalstorage/functions/xpersistentlocalstoragegetpathsize.md)
