---
title: withSpecification
framework: kernel
role: pseudoSymbol
path: kernel/ionaturalmemorycursor/1813112-withspecification
---

# withSpecification

Creates and initializes an IONaturalMemoryCursor in one operation.

## Declaration

```occ
static IONaturalMemoryCursor * withSpecification(
 IOPhysicalLength maxSegmentSize, 
 IOPhysicalLength maxTransferSize, 
 IOPhysicalLength alignment = 1); 
```

## Parameters

- `maxSegmentSize`: Maximum allowable size for one segment. Defaults to 0.
- `maxTransferSize`: Maximum size of an entire transfer. Defaults to 0 indicating no maximum.
- `alignment`: Alignment restrictions on output physical addresses. Not currently implemented. Defaults to single byte alignment.

## Return Value

Return Value Returns a new memory cursor if successfully created and initialized, 0 otherwise.

## Overview

Overview Factory function to create and initialize an IONaturalMemoryCursor in one operation. For more information, see IONaturalMemoryCursor::initWithSpecification.

## See Also

### Miscellaneous

- [getPhysicalSegments](kernel/ionaturalmemorycursor/1813076-getphysicalsegments.md)
- [initWithSpecification](kernel/ionaturalmemorycursor/1813089-initwithspecification.md)
- [outputSegment](kernel/ionaturalmemorycursor/1813100-outputsegment.md)
