---
title: AsyncCompletion
framework: driverkit
role: symbol
role_heading: Instance Method
path: driverkit/iouserclient/asynccompletion
---

# AsyncCompletion

Send asynchronous arguments to a completion supplied by ExternalMethod().

## Declaration

```occ
virtual void AsyncCompletion(OSAction *action, IOReturn status, const IOUserClientAsyncArgumentsArray asyncData, uint32_t asyncDataCount);
```

## Parameters

- `action`: OSAction passed to IOExternalMethod().
- `status`: An IOReturn status value to be sent.
- `asyncData`: An array of scalar data to be sent.
- `asyncDataCount`: Count of valid data in asyncData.

## Discussion

Discussion IOConnectAsyncMethod calls from the owner of the connection come will pass an OSAction instance. To deliver the asynchronous results the driver calls AsyncCompletion().

## See Also

### Communicating with the Client

- [KernelCompletion](driverkit/iouserclient/kernelcompletion.md)
- [IOUserClientAsyncArgumentsArray](driverkit/iouserclientasyncargumentsarray.md)
- [Arguments Array Maximum](driverkit/3325601-arguments_array_maximum.md)
- [IOUserClientAsyncReferenceArray](driverkit/iouserclientasyncreferencearray.md)
- [Reference Array Maximum](driverkit/3325602-reference_array_maximum.md)
