---
title: CreateMemoryDescriptorRing
framework: usbdriverkit
role: symbol
role_heading: Instance Method
path: usbdriverkit/iousbhostpipe/creatememorydescriptorring
---

# CreateMemoryDescriptorRing

## Declaration

```occ
virtual kern_return_t CreateMemoryDescriptorRing(uint32_t size);
```

## Parameters

- `size`: Size of the ring.

## Return Value

Return Value KERN_SUCCESS is successful see IOReturn.h for error codes.

## Discussion

Discussion Create a memory descriptor ring to use with AsyncIOBundled(). The ring size should be large enough to hold all the memory descriptors to be used with the pipe. The ring must only be created once, and will be freed by the kernel driver when the pipe is destroyed.
