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

# PFGameSaveFilesUiProgressCallback

> Notification callback fired when the sync operation transitions to a new state. This callback fires once per state transition (e.g., once for PreparingForUpload, once for Uploading) -- it is NOT fired repeatedly as progress advances within a state. To get granular progress within a state, call PFGameSaveFilesUiProgressGetProgress to poll the current and total byte counts. Titles should treat this as a state-change notification (e.g., show or update a progress dialog) rather than expecting it to fire at a high frequency.

Notification callback fired when the sync operation transitions to a new state. This callback fires once per state transition (e.g., once for PreparingForUpload, once for Uploading) -- it is NOT fired repeatedly as progress advances within a state. To get granular progress within a state, call PFGameSaveFilesUiProgressGetProgress to poll the current and total byte counts. Titles should treat this as a state-change notification (e.g., show or update a progress dialog) rather than expecting it to fire at a high frequency.

## Syntax

```cpp theme={null}
void PFGameSaveFilesUiProgressCallback(  
    PFLocalUserHandle localUserHandle,  
    PFGameSaveFilesSyncState syncState,  
    void* context  
)  
```

### Parameters

**`localUserHandle`**   PFLocalUserHandle

Local user handle.

**`syncState`**   [PFGameSaveFilesSyncState](/services/playfab/api-references/c/pfgamesavefilestypes/enums/pfgamesavefilessyncstate)

The new sync state of the operation.

**`context`**   void\*<br />*optional*

Context pointer passed during callback registration.

### Return value

Type: void

TBD

## Requirements

**Header:** PFGameSaveFilesUi.h

## See also

[PFGameSaveFilesUi members](/services/playfab/api-references/c/pfgamesavefilesui/pfgamesavefilesui_members)
