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

# PFMemAllocFunction

> 타이틀이 PFMemSetFunctions를 사용하여 사용자 지정 메모리 후크를 설치한 후 PlayFab이 지정된 크기의 메모리 버퍼를 할당하기 위해 호출하는 콜백입니다.

PlayFab이 메모리 버퍼를 동적으로 할당해야 할 때마다 호출하는 콜백입니다.

## 구문

```cpp theme={null}
void* STDAPIVCALLTYPE PFMemAllocFunction(
    size_t size,
    uint32_t memoryTypeId
);
```

### 매개 변수

**`size`**   `_In_` size\_t

할당할 크기(바이트)입니다. 이 값은 0이 아닙니다.

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

할당되는 메모리의 내부 범주에 대한 불투명 식별자입니다. 이 값은 무시하세요.

### 반환 값

형식: void\*

지정된 크기의 할당된 메모리 블록에 대한 포인터이거나, 할당에 실패한 경우 `nullptr`입니다. 헤더는 반환 값에 `_Ret_maybenull_` 및 `_Post_writable_byte_size_(size)` 주석을 지정합니다.

## 설명

이 콜백을 설치하려면 [PFMemoryHooks](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md) 구조체의 `alloc` 멤버에 설정하고 [PFInitialize](https://docs.xbox.com/ko/services/playfab/api-references/c/pfcore/functions/pfinitialize.md)를 호출하기 전에 해당 구조체를 [PFMemSetFunctions](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md)에 전달하세요. 동시에 `free` 멤버를 일치하는 [PFMemFreeFunction](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md) 콜백으로 설정하세요. 두 멤버 중 하나만 설정된 경우 PFMemSetFunctions는 `E_INVALIDARG`를 반환합니다.

콜백은 요청된 크기의 연속된 메모리 블록에 대한 포인터를 반환해야 합니다. 이 블록은 PlayFab이 PFMemFreeFunction 콜백에 전달할 때까지 유효한 상태로 유지되어야 합니다. PlayFab은 이 콜백이 반환하는 null이 아닌 모든 포인터를 더 이상 메모리가 필요하지 않을 때 PFMemFreeFunction 콜백에 전달합니다.

PFMemSetFunctions를 호출할 때 libHttpClient가 아직 초기화되지 않은 경우 PlayFab은 libHttpClient의 할당을 이 콜백을 통해 라우팅하는 후크도 설치합니다.

기본 후크를 포함하여 현재 사용 중인 후크를 가져오려면 [PFMemGetFunctions](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/functions/pfmemgetfunctions.md)를 호출하세요.

PlayFab은 여러 스레드에서 이 콜백을 호출할 수 있으므로 스레드로부터 안전하게 만드세요.

## 요구 사항

**헤더:** PFPlatform.h

**라이브러리:** PlayFabCore.lib

**지원 플랫폼:** Windows, XBOX One 제품군 콘솔 및 XBOX Series 콘솔

## 참고 항목

[PFPlatform 멤버](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/pfplatform_members.md)

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

[PFMemFreeFunction](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)


## Related topics

- [PFMemFreeFunction](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/functions/pfmemfreefunction.md)
- [PFMemoryHooks](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/structs/pfmemoryhooks.md)
- [Services C API 개요 - PFPlatform.h](https://docs.xbox.com/ko/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [HCMemAllocFunction](https://docs.xbox.com/ko/reference/live/httpclient/httpclient/functions/hcmemallocfunction.md)
- [XblMemAllocFunction](https://docs.xbox.com/ko/reference/live/xsapi-c/xbox_live_global_c/functions/xblmemallocfunction.md)
