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

# PFPlatformLocalStorageClearAsyncHandler

> Manipulador de armazenamento que o PlayFab chama para excluir os dados armazenados em uma chave; ele inicia uma operação XAsync que é concluída sem carga de resultado.

Manipulador de limpeza do armazenamento que o PlayFab chama quando precisa limpar dados do armazenamento. Implemente-o como um [XAsyncProvider](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasyncprovider.md).

## Sintaxe

```cpp theme={null}
HRESULT STDAPIVCALLTYPE PFPlatformLocalStorageClearAsyncHandler(
    void* context,
    const char* key,
    XAsyncBlock* async
);
```

### Parâmetros

**`context`**   `_In_opt_` void\*

O membro `context` da estrutura [PFLocalStorageHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md) que você passou para [PFPlatformLocalStorageSetHandlers](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragesethandlers.md). Pode ser `nullptr`. O PlayFab não é proprietário desse ponteiro.

**`key`**   `_In_z_` const char\*

Identifica os dados. Normalmente, um caminho de arquivo. Limpe os dados armazenados nessa chave.

**`async`**   `_Inout_` [XAsyncBlock](https://docs.xbox.com/pt-BR/reference/system/xasync/structs/xasyncblock.md)\*

O `XAsyncBlock` da operação de limpeza.

### Valor de retorno

Tipo: HRESULT

Retorne `S_OK` se você tiver iniciado a operação assíncrona em `async`, por exemplo, com [XAsyncBegin](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasyncbegin.md). Se o manipulador retornar um HRESULT de falha, o PlayFab fará a operação de armazenamento falhar com esse HRESULT e não aguardará a conclusão de `async`; portanto, retorne uma falha somente quando você não tiver iniciado uma operação em `async`. Informe o resultado da própria operação de armazenamento concluindo `async` com [XAsyncComplete](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasynccomplete.md).

## Comentários

Para instalar esse manipulador, defina-o no membro `clear` de uma estrutura [PFLocalStorageHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md), junto com os outros dois manipuladores de armazenamento, e passe a estrutura para [PFPlatformLocalStorageSetHandlers](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragesethandlers.md) antes de chamar [PFInitialize](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfcore/functions/pfinitialize.md). PFPlatformLocalStorageSetHandlers retorna `E_INVALIDARG` se qualquer um dos três manipuladores for `nullptr`. Se você não definir manipuladores personalizados, o PlayFab usará uma implementação padrão baseada em cstdio e em objetos `std::fstream`.

Conclua `async` com [XAsyncComplete](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasynccomplete.md), passando o resultado da limpeza e um tamanho de resultado igual a 0.

A implementação padrão tenta excluir o arquivo nomeado por `key` e é concluída com `S_OK` mesmo que a exclusão falhe, por exemplo, porque o arquivo não existe. Trate uma chave ausente como êxito também no seu manipulador.

Quando a saída de rastreamento para um arquivo está habilitada com [PFTraceEnableTraceToFile](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pftrace/functions/pftraceenabletracetofile.md), [PFInitialize](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfcore/functions/pfinitialize.md) chama esse manipulador para o arquivo de rastreamento e aguarda a conclusão da operação antes de continuar. A porta de trabalho da fila na qual a operação é executada deve progredir enquanto PFInitialize aguarda. Se você despachar essa porta de trabalho manualmente, despache-a de outro thread; despachar apenas a porta de conclusão não é suficiente.

O PlayFab pode chamar esse manipulador de forma embutida no thread que inicia a operação de armazenamento, portanto, não dependa do thread em que ele é executado. A fila de `async` é uma fila que o PlayFab deriva do membro `queueHandle` de PFLocalStorageHooks. Se `queueHandle` for `nullptr`, o PlayFab a deriva da fila em segundo plano que você passou para PFInitialize ou da fila de tarefas do processo, se essa fila também for `nullptr`. Os retornos de chamada de trabalho e de conclusão da fila derivada são executados na porta de trabalho da fila da qual ela é derivada.

O PlayFab executa uma operação de armazenamento por vez e só inicia a próxima depois que a atual é concluída.

O PlayFab pode cancelar uma operação pendente chamando `XAsyncCancel` em `async`. Trate `XAsyncOp::Cancel` no seu provedor se a sua operação de armazenamento puder ser cancelada.

Os argumentos `key` e `async` pertencem ao PlayFab e permanecem válidos até que a operação seja concluída. O argumento `context` não é coberto por essa garantia.

## Requisitos

**Cabeçalho:** PFPlatform.h

**Biblioteca:** PlayFabCore.lib

**Plataformas compatíveis:** Windows, consoles da família XBOX One e consoles XBOX Series

## Confira também

[Membros de PFPlatform](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/pfplatform_members.md)

[PFLocalStorageHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md)

[PFPlatformLocalStorageSetHandlers](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragesethandlers.md)

[XAsyncProvider](https://docs.xbox.com/pt-BR/reference/system/xasyncprovider/functions/xasyncprovider.md)

[PFPlatformLocalStorageReadAsyncHandler](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragereadasynchandler.md)

[PFPlatformLocalStorageWriteAsyncHandler](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragewriteasynchandler.md)


## Related topics

- [PFPlatformLocalStorageWriteAsyncHandler](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragewriteasynchandler.md)
- [PFPlatformLocalStorageReadAsyncHandler](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragereadasynchandler.md)
- [PFLocalStorageHooks](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md)
- [Visão geral da API C de serviços - PFPlatform.h](https://docs.xbox.com/pt-BR/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [XblLocalStorageClearHandler](https://docs.xbox.com/pt-BR/reference/live/xsapi-c/platform_c/functions/xbllocalstorageclearhandler.md)
