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

# 記憶體攔截

> 在 PFInitialize 之前使用 PFMemSetFunctions 安裝自訂配置與釋放攔截，以控制 PlayFab Services SDK 的記憶體配置。

# 管理記憶體配置

透過 PlayFab Services SDK 中的 C API，您可以指定一個函式回呼，SDK 每次嘗試配置記憶體時都會呼叫它。如果您未指定函式回呼，SDK 會使用標準的記憶體配置常式。

若要手動指定您的記憶體常式，可以採取下列步驟：

* 在遊戲開始時：
  * 呼叫 [**PFMemSetFunctions**](/zh-TW/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions) 以指定用於配置和釋放記憶體的配置回呼。
  * 呼叫 [**PFInitialize**](/zh-TW/services/playfab/api-references/c/pfcore/functions/pfinitialize) 以初始化 PlayFab Core 程式庫。
  * 呼叫 [**PFServicesInitialize**](/zh-TW/services/playfab/api-references/c/pfservices/functions/pfservicesinitialize) 以初始化 PlayFab Services 程式庫。

<Info>
  順序很重要。**PFMemSetFunctions** 必須在 **PFInitialize** 之前，而 **PFInitialize** 必須在 **PFServicesInitialize** 之前。如果您略過明確的 **PFInitialize** 呼叫，**PFServicesInitialize** 會在內部初始化 Core，但此時您的記憶體攔截尚未套用，因此 SDK 會改用預設的配置常式。
</Info>

```cpp theme={null}
    PFMemoryHooks playFabHooks{ MyAllocHook, MyFreeHook };
    PFMemSetFunctions(&playFabHooks);
    HRESULT hr = PFInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
    hr = PFServicesInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
```

* 遊戲執行期間：
  * 任何會配置或釋放記憶體的 SDK 呼叫，都會呼叫指定的記憶體處理回呼。

* 遊戲結束時：
  * 呼叫 [**PFServicesUninitializeAsync**](/zh-TW/services/playfab/api-references/c/pfservices/functions/pfservicesuninitializeasync) 以回收與 PlayFab Services 相關聯的所有資源。
  * 呼叫 [**PFUninitializeAsync**](/zh-TW/services/playfab/api-references/c/pfcore/functions/pfuninitializeasync) 以回收與 PlayFab Core 相關聯的所有資源。
  * 清除遊戲的自訂記憶體管理員。

## 參考

[API 參考文件](/zh-TW/services/playfab/api-references/c/pfplatform/pfplatform_members)


## Related topics

- [PlayFab Unified SDK 中的記憶體管理](/zh-TW/services/playfab/sdks/unified-sdk/memory-management.md)
- [PFMemSetFunctions](/zh-TW/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md)
- [服務 C API 概觀 - PFPlatform.h](/zh-TW/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemGetFunctions](/zh-TW/reference/live/httpclient/httpclient/functions/hcmemgetfunctions.md)
- [XblMemSetFunctions](/zh-TW/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemsetfunctions.md)
