---
title: IOUserClient
framework: driverkit
role: symbol
role_heading: Class
path: driverkit/iouserclient
---

# IOUserClient

A connection to another service that the system manages.

## Declaration

```occ
class IOUserClient;
```

## Overview

Overview An application may open an IOUserClient by calling IOServiceOpen(). This results in a call to the IOService::NewUserClient API to create an instance representing the connection. and to receive untyped data via IOConnectMethod/IOConnectAsyncMethod. As an IOService subclass, IOUserClient receives the normal Start()/Stop() lifecyle calls.

## Topics

### Configuring a User Client

- [init](driverkit/iouserclient/init.md)
- [free](driverkit/iouserclient/free.md)

### Communicating with the Client

- [AsyncCompletion](driverkit/iouserclient/asynccompletion.md)
- [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)

### Responding to Messages

- [ExternalMethod](driverkit/iouserclient/externalmethod.md)
- [IOUserClientMethodArguments](driverkit/iouserclientmethodarguments.md)
- [IOUserClientMethodDispatch](driverkit/iouserclientmethoddispatch.md)
- [IOUserClientMethodFunction](driverkit/iouserclientmethodfunction.md)

### Mapping to the Client’s Memory Space

- [CopyClientMemoryForType](driverkit/iouserclient/copyclientmemoryfortype.md)
- [Copy Client Memory Options](driverkit/3325603-copy_client_memory_options.md)

### Instance Methods

- [CopyClientEntitlements](driverkit/iouserclient/copycliententitlements.md)
- [CreateMemoryDescriptorFromClient](driverkit/iouserclient/creatememorydescriptorfromclient.md)

## Relationships

### Inherits From

- [IOService](driverkit/ioservice.md)

## See Also

### External drivers

- [IOUserServer](driverkit/iouserserver.md)
- [com.apple.developer.driverkit.userclient-access](bundleresources/entitlements/com.apple.developer.driverkit.userclient-access.md)
- [Communicating between a DriverKit extension and a client app](driverkit/communicating-between-a-driverkit-extension-and-a-client-app.md)
