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

# PFMemFreeFunction

> 在 PlayFab 不再需要由游戏的 PFMemAllocFunction 回调分配的非 null 内存缓冲区后，PlayFab 调用此回调来释放该缓冲区。

每当 PlayFab 分配的内存缓冲区不再需要并可以释放时调用的回调。

## 语法

```cpp theme={null}
void STDAPIVCALLTYPE PFMemFreeFunction(
    void* pointer,
    uint32_t memoryTypeId
);
```

### 参数

**`pointer`**   `_In_ _Post_invalid_` void\*

指向由你的 [PFMemAllocFunction](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/functions/pfmemallocfunction.md) 回调分配的内存缓冲区的指针。此值永远不会为 `nullptr`。回调返回后，该指针不再有效。

**`memoryTypeId`**   `_In_` uint32\_t

正在释放的内存的内部类别的不透明标识符。请忽略此值。

### 返回值

类型：void

## 备注

若要安装此回调，请在 [PFMemoryHooks](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) 结构的 `free` 成员中设置它，并在调用 [PFInitialize](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfcore/functions/pfinitialize.md) 之前将该结构传递给 [PFMemSetFunctions](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md)。同时将 `alloc` 成员设置为匹配的 PFMemAllocFunction 回调。如果只设置了这两个成员中的一个，PFMemSetFunctions 将返回 `E_INVALIDARG`。

当 PlayFab 使用完你的 PFMemAllocFunction 回调返回的内存缓冲区后，会调用此回调，以便你释放该缓冲区。PlayFab 不会使用 `nullptr` 调用此回调。

如果在调用 PFMemSetFunctions 时 libHttpClient 尚未初始化，PlayFab 还会安装挂钩，使 libHttpClient 的释放操作也通过此回调进行。

PlayFab 可能从不同的线程调用此回调，因此请确保它是线程安全的。

## 要求

**头文件：** PFPlatform.h

**库：** PlayFabCore.lib

**支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## 另请参阅

[PFPlatform 成员](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/pfplatform_members.md)

[PFMemoryHooks](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)

[PFMemAllocFunction](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/functions/pfmemallocfunction.md)


## Related topics

- [PFMemAllocFunction](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/functions/pfmemallocfunction.md)
- [PFMemoryHooks](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [服务 C API 概览 - PFPlatform.h](https://docs.xbox.com/zh-CN/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemFreeFunction](https://docs.xbox.com/zh-CN/reference/live/httpclient/httpclient/functions/hcmemfreefunction.md)
- [XblMemFreeFunction](https://docs.xbox.com/zh-CN/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemfreefunction.md)
