---
title: Create
framework: audiodriverkit
role: symbol
role_heading: Static Method
path: audiodriverkit/iouseraudiostream/create
---

# Create

Allocates and initializes an instance of the audio stream class.

## Declaration

```occ
static OSSharedPtr<IOUserAudioStream> Create(IOUserAudioDriver *in_driver, IOUserAudioStreamDirection in_direction, IOMemoryDescriptor *in_io_memory_descriptor);
```

## Parameters

- `in_driver`: The doc://com.apple.audiodriverkit/documentation/AudioDriverKit/IOUserAudioDriver that owns this object.
- `in_direction`: A IOUserAudioStreamDirection for the stream’s direction: input or output.
- `in_io_memory_descriptor`: A pointer to a doc://com.apple.documentation/documentation/DriverKit/IOMemoryDescriptor. The stream maps the descriptor’s buffer to the host for doing audio I/O.

## Return Value

Return Value A poiner to an IOUserAudioStream, if allocation and initialization succeeded.

## Discussion

Discussion If you subclass IOUserAudioStream to override this class’ behavior, don’t use Create to allocate and initialize the custom subclass.

## See Also

### Creating an Audio Stream

- [init](audiodriverkit/iouseraudiostream/init.md)
- [IOUserAudioDriver](audiodriverkit/iouseraudiodriver.md)
