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

# XAsyncComplete

> XAsyncComplete

# XAsyncComplete

비동기 공급자에 대한 콜백 함수가 작업을 완료했으며 결과를 반환할 수 있음을 나타냅니다.

## 구문

```cpp theme={null}
void XAsyncComplete(  
         XAsyncBlock* asyncBlock,  
         HRESULT result,  
         size_t requiredBufferSize  
)  
```

### 매개 변수

*asyncBlock*   \_Inout\_\
형식: [XAsyncBlock\*](/reference/system/xasync/structs/xasyncblock)

[XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin)에 전달된 [XAsyncBlock](/reference/system/xasync/structs/xasyncblock)에 대한 포인터입니다.

*result*   \_In\_\
형식: [HRESULT](https://learn.microsoft.com/openspecs/windows_protocols/ms-erref/0642cb2f-2075-4469-918c-4441e69c548a)

콜백 함수가 수행한 작업의 결과입니다. 작업이 취소되면 이를 `E_ABORT`로 설정합니다. 더 많은 작업이 필요한 경우 이를 `E_PENDING`으로 설정합니다. 그렇지 않으면 적절한 결과 코드로 설정합니다.

*requiredBufferSize*   \_In\_\
형식: size\_t

콜백 함수가 반환할 데이터 페이로드의 필요한 크기(바이트)입니다. 콜백 함수가 데이터 페이로드를 반환하지 않는 경우 이 값을 0으로 설정합니다. 이 매개 변수는 콜백 함수가 오류를 반환하는 경우 무시됩니다.

### 반환 값

형식: void

## 설명

<Note>이 함수는 시간에 민감한 스레드에서 호출하기에 안전하지 않습니다. 자세한 내용은 [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)를 참조하세요.</Note>

이 함수는 콜백 함수가 비동기 작업을 수행하거나 취소하기 위해 호출된 경우 호출됩니다. 이 함수는 적절한 결과 코드와 해당하는 경우 데이터 페이로드에 대한 정보를 반환합니다. 콜백 함수에 대한 [XAsyncOp](/reference/system/xasyncprovider/enums/xasyncop) 작업 코드, 비동기 작업 및 데이터 페이로드의 조합은 일반적으로 이 함수를 호출할 때 *result* 및 *requiredBufferSize*에 제공되어야 하는 값을 결정합니다.

콜백 함수가 `XAsyncOp::DoWork` 작업 코드로 호출된 경우 콜백 함수는 비동기 작업을 수행해야 합니다. 콜백 함수가 모든 비동기 작업을 완료한 경우 *result*를 적절한 오류 코드로 설정합니다. 더 많은 작업을 수행해야 하는 경우 *result*를 `E_PENDING`으로 설정합니다. 함수가 데이터 페이로드를 반환하는 경우 *requiredBufferSize*를 데이터 페이로드를 반환하는 데 필요한 버퍼의 크기(바이트)로 설정하고, 그렇지 않으면 *requiredBufferSize*를 0으로 설정합니다.

콜백 함수가 `XAsyncOp::Cancel` 작업 코드로 호출된 경우 콜백 함수는 비동기 작업을 취소해야 합니다. *result*를 `E_ABORT`로 설정하고 *requiredBufferSize*를 0으로 설정합니다.

## 요구 사항

**헤더:** XAsyncProvider.h

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

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

## 개념 설명서

* [취소 가능성 설정](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-cancelability)
* [사용자 지정 공급자 설정](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-custom-provider)
* [반환 데이터 설정](/build/core-features/common/async/async-libraries/async-library-xasyncprovider-example-setup-return-data)
* [비동기 프로그래밍 모델](/build/core-features/common/async/async-programming-model)
* [시간에 민감한 스레드](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/console-dev/overviews/threads/time-sensitive-threads)

## 함께 보기

[XAsyncProvider 멤버](/reference/system/xasyncprovider/xasyncprovider_members)\
[XAsyncBegin](/reference/system/xasyncprovider/functions/xasyncbegin)\
[비동기 프로그래밍 모델](/build/core-features/common/async/async-programming-model)
