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

> Controlador de almacenamiento al que PlayFab llama para eliminar los datos almacenados con una clave; inicia una operación XAsync que se completa sin carga de resultado.

Controlador de borrado del almacenamiento al que PlayFab llama cuando necesita borrar datos del almacenamiento. Impleméntelo como un [XAsyncProvider](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncprovider.md).

## Sintaxis

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

### Parámetros

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

El miembro `context` de la estructura [PFLocalStorageHooks](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md) que pasó a [PFPlatformLocalStorageSetHandlers](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragesethandlers.md). Puede ser `nullptr`. PlayFab no es propietario de este puntero.

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

Identifica los datos. Normalmente, una ruta de acceso de archivo. Borre los datos almacenados con esta clave.

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

El `XAsyncBlock` de la operación de borrado.

### Valor devuelto

Tipo: HRESULT

Devuelva `S_OK` si inició la operación asincrónica en `async`, por ejemplo con [XAsyncBegin](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasyncbegin.md). Si el controlador devuelve un HRESULT de error, PlayFab hace que la operación de almacenamiento produzca un error con ese HRESULT y no espera a que se complete `async`, por lo que solo debe devolver un error cuando no haya iniciado ninguna operación en `async`. Informe del resultado de la propia operación de almacenamiento completando `async` con [XAsyncComplete](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasynccomplete.md).

## Comentarios

Para instalar este controlador, establézcalo en el miembro `clear` de una estructura [PFLocalStorageHooks](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md), junto con los otros dos controladores de almacenamiento, y pase la estructura a [PFPlatformLocalStorageSetHandlers](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragesethandlers.md) antes de llamar a [PFInitialize](https://docs.xbox.com/es/services/playfab/api-references/c/pfcore/functions/pfinitialize.md). PFPlatformLocalStorageSetHandlers devuelve `E_INVALIDARG` si alguno de los tres controladores es `nullptr`. Si no establece controladores personalizados, PlayFab usa una implementación predeterminada basada en objetos cstdio y `std::fstream`.

Complete `async` con [XAsyncComplete](https://docs.xbox.com/es/reference/system/xasyncprovider/functions/xasynccomplete.md) y pase el resultado del borrado y un tamaño de resultado de 0.

La implementación predeterminada intenta eliminar el archivo con el nombre indicado por `key` y se completa con `S_OK` aunque la eliminación produzca un error, por ejemplo, porque el archivo no existe. Trate también una clave que falta como un resultado correcto en el controlador.

Cuando la salida de seguimiento a un archivo está habilitada con [PFTraceEnableTraceToFile](https://docs.xbox.com/es/services/playfab/api-references/c/pftrace/functions/pftraceenabletracetofile.md), [PFInitialize](https://docs.xbox.com/es/services/playfab/api-references/c/pfcore/functions/pfinitialize.md) llama a este controlador para el archivo de seguimiento y espera a que se complete la operación antes de continuar. El puerto de trabajo de la cola en la que se ejecuta la operación debe seguir avanzando mientras PFInitialize espera. Si distribuye ese puerto de trabajo manualmente, distribúyalo desde otro subproceso; distribuir solo el puerto de finalización no es suficiente.

PlayFab puede llamar a este controlador en línea en el subproceso que inicia la operación de almacenamiento, por lo que no dependa del subproceso en el que se ejecuta. La cola de `async` es una cola que PlayFab deriva del miembro `queueHandle` de PFLocalStorageHooks. Si `queueHandle` es `nullptr`, PlayFab la deriva de la cola en segundo plano que pasó a PFInitialize, o de la cola de tareas del proceso si esa cola también era `nullptr`. Las devoluciones de llamada de trabajo y de finalización de la cola derivada se ejecutan en el puerto de trabajo de la cola de la que se deriva.

PlayFab ejecuta una operación de almacenamiento cada vez e inicia la siguiente solo después de que se complete la actual.

PlayFab puede cancelar una operación pendiente llamando a `XAsyncCancel` en `async`. Controle `XAsyncOp::Cancel` en el proveedor si la operación de almacenamiento se puede cancelar.

Los argumentos `key` y `async` son propiedad de PlayFab y siguen siendo válidos hasta que se completa la operación. El argumento `context` no está cubierto por esta garantía.

## Requisitos

**Encabezado:** PFPlatform.h

**Biblioteca:** PlayFabCore.lib

**Plataformas compatibles:** Windows, consolas de la familia XBOX One y consolas XBOX Series

## Consulte también

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

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

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

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

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

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


## Related topics

- [PFPlatformLocalStorageWriteAsyncHandler](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragewriteasynchandler.md)
- [PFPlatformLocalStorageReadAsyncHandler](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/functions/pfplatformlocalstoragereadasynchandler.md)
- [PFLocalStorageHooks](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/structs/pflocalstoragehooks.md)
- [Información general de la API de C de Services - PFPlatform.h](https://docs.xbox.com/es/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [XblLocalStorageClearHandler](https://docs.xbox.com/es/reference/live/xsapi-c/platform_c/functions/xbllocalstorageclearhandler.md)
