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

# Game Saves 工具

> 使用 Fiddler 檢查 XBOX Game Saves 流量，並使用 xbstorage 與 gamesaveutil 命令列工具匯出與匯入本機存檔資料。

本文說明如何使用 Fiddler 檢查網路流量、偵錯的基本工具與技巧，以及操作 Game Saves。

## 檢查 Game Saves 網路流量

使用 Fiddler 檢查與偵錯進出遊戲的網路流量。如需 Fiddler 設定的資訊，請參閱下列文章：

* [XBOX 開發套件上的 Fiddler](/zh-TW/build/console-features/networking/tools/fiddler-setup-networking)
* [Windows PC 上的 Fiddler](/zh-TW/build/console-features/networking/tools/fiddler-pc)

Fiddler 可確認遊戲是否取得或釋放遊戲鎖定，這決定了資料何時與雲端同步。

以下是遊戲成功取得鎖定時的 `PUT` 要求。

```
PUT /connectedstorage/users/xuid(<XUID>)/scids/<TITLE SCID>/lock HTTP/1.1  
```

以下是遊戲釋放鎖定時的要求。

```
DELETE /connectedstorage/users/xuid(<XUID>)/scids/<TITLE SCID>/lock HTTP/1.1
```

遊戲會在不同的時間點取得與釋放鎖定，視所使用的 Game Saves API 而定。

| Game Saves API | 取得鎖定 | 釋放鎖定 | 備註 |
| - | - | - | - |
| XGameSaveFiles | [XGameSaveFilesGetFolderWithUiAsync](/zh-TW/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync) | 裝置完成上傳擱置的變更時，會自動釋放鎖定。此程序在遊戲結束後約需 15 到 30 秒。 | 遊戲繼續時，呼叫 [XGameSaveFilesGetFolderWithUiAsync](/zh-TW/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync) 以重新取得鎖定。API 呼叫傳回的資料夾路徑在各工作階段之間保持不變。鎖定可能已不再有效。 |
| XGameSave | [XGameSaveInitializeProvider](/zh-TW/reference/system/xgamesave/functions/xgamesaveinitializeprovider) 或 [XGameSaveInitializeProviderAsync](/zh-TW/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync) | [XGameSaveCloseProvider](/zh-TW/reference/system/xgamesave/functions/xgamesavecloseprovider) | 遊戲會呼叫 [XGameSaveCloseProvider](/zh-TW/reference/system/xgamesave/functions/xgamesavecloseprovider) 來釋放提供者的資源。未呼叫會導致記憶體流失。 |

如需同步程序的詳細資訊，請參閱[了解 Game Saves 同步流程](/zh-TW/build/core-features/common/game-save/game-saves-syncing)

## 操作 Game Saves

有兩個工具可用來直接與 Game Saves 互動。

* `xbstorage`：用於主機上的本機 Game Saves。如需詳細資訊，請參閱[在主機上管理 Game Saves 資料 (xbstorage.exe)](/zh-TW/tools/tools-console/commandlinetools/xbstorage)。
* `xgamesaveutil`：用於 PC 上的本機 Game Saves。如需詳細資訊，請參閱[在 PC 上管理 Game Saves 資料 (xgamesaveutil.exe)](/zh-TW/tools/tools-pc/commandlinetools/gr-xgamesaveutil)。

這些工具可讓您透過 .xml 檔案匯入與匯出個別使用者或機器提供者的儲存空間。
如需所有工具作業的清單，請參閱各工具的文章。

<Info>主機與 PC 之間的匯入與匯出行為不同。如需詳細資訊，請參閱下列詳細資料與各工具頁面。</Info>

### 主機 (xbstorage)

在主機上，`xbstorage` 會透過主機的 Game Saves 服務運作。當工具執行作業時，系統的行為就如同遊戲直接執行該作業。

* **匯入**資料時，主機會先與雲端同步 (取得鎖定並下載任何遠端變更)，在本機寫入匯入的資料，然後開始將匯入的資料上傳到雲端。上傳會在背景完成，之後才會釋放鎖定。
* **匯出**資料時，主機會先與雲端同步，然後將本機資料複製到輸出檔案。

### PC (xgamesaveutil)

在 PC 上，`xgamesaveutil` 會直接將資料寫入本機磁碟，而不經過 Game Saves 服務。

* **匯入**資料會將容器與 Blob 寫入本機磁碟。工具在匯入之前或之後都不會與雲端同步，也不會觸發上傳到雲端。匯入的資料會在遊戲下次啟動並取得 Game Saves 提供者時上傳到雲端。
* **匯出**資料會直接從本機磁碟讀取容器。讀取之前不會與雲端同步。

如果執行這些工具之一的裝置無法取得鎖定，或偵測到雲端與本機容器之間的衝突，系統會將此情況視為使用者不會解決衝突。在此狀態下，裝置會保留容器的一個版本。在下次啟動遊戲之前，裝置的行為會如同處於離線狀態。

## 參考 API 文件

* [XGameSave (API 內容)](/zh-TW/reference/system/xgamesave/xgamesave_members)
  * 函式
    * [XGameSaveInitializeProvider](/zh-TW/reference/system/xgamesave/functions/xgamesaveinitializeprovider)
    * [XGameSaveInitializeProviderAsync](/zh-TW/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync)
    * [XGameSaveCloseProvider](/zh-TW/reference/system/xgamesave/functions/xgamesavecloseprovider)
* [XGameSaveFiles (API 內容)](/zh-TW/reference/system/xgamesavefiles/xgamesavefiles_members)
  * 函式
    * [XGameSaveFilesGetFolderWithUiAsync](/zh-TW/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync)

## 另請參閱

[Game Saves 目錄](/zh-TW/build/core-features/common/game-save/game-saves-toc)


## Related topics

- [XGameSaveFiles](/zh-CN/reference/system/xgamesavefiles/xgamesavefiles_members.md)
- [XGameSaveCloseProvider](/zh-CN/reference/system/xgamesave/functions/xgamesavecloseprovider.md)
- [XGameSaveInitializeProvider](/zh-CN/reference/system/xgamesave/functions/xgamesaveinitializeprovider.md)
- [XGameSaveInitializeProviderAsync](/zh-CN/reference/system/xgamesave/functions/xgamesaveinitializeproviderasync.md)
- [XGameSaveFilesGetFolderWithUiAsync](/zh-CN/reference/system/xgamesavefiles/functions/xgamesavefilesgetfolderwithuiasync.md)
