Saltar al contenido principal
Controlador de lectura del almacenamiento al que PlayFab llama cuando necesita leer datos del almacenamiento. Impleméntelo como un XAsyncProvider.

Sintaxis

Parámetros

context   _In_opt_ void* El miembro context de la estructura PFLocalStorageHooks que pasó a PFPlatformLocalStorageSetHandlers. 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. Lea los datos almacenados con esta clave. async   _Inout_ XAsyncBlock* El XAsyncBlock de la operación de lectura.

Valor devuelto

Tipo: HRESULT Devuelva S_OK si inició la operación asincrónica en async, por ejemplo con XAsyncBegin. 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.

Comentarios

Para instalar este controlador, establézcalo en el miembro read de una estructura PFLocalStorageHooks, junto con los otros dos controladores de almacenamiento, y pase la estructura a PFPlatformLocalStorageSetHandlers antes de llamar a PFInitialize. 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 y pase el resultado de la lectura y el tamaño, en bytes, de los datos que leyó. A continuación, PlayFab llama a XAsyncGetResultSize y XAsyncGetResult para copiar los datos, por lo que el proveedor debe copiar los datos en el miembro buffer de XAsyncProviderData cuando reciba XAsyncOp::GetResult. Si no hay datos almacenados con key, la implementación predeterminada completa la operación con S_OK y un tamaño de resultado de 0. Haga lo mismo en el controlador. 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 PFLocalStorageHooks PFPlatformLocalStorageSetHandlers XAsyncProvider PFPlatformLocalStorageWriteAsyncHandler PFPlatformLocalStorageClearAsyncHandler
Última modificación el 5 de noviembre de 2026