---
title: IOPartitionScheme
framework: kernel
role: symbol
role_heading: Class
path: kernel/iopartitionscheme
---

# IOPartitionScheme

The common base class for all partition scheme objects.

## Declaration

```occ
class IOPartitionScheme : IOStorage
```

## Overview

Overview The IOPartitionScheme class is the common base class for all partition scheme objects. It extends the IOStorage class by implementing the appropriate open and close semantics for partition objects (standard semantics are to act as a multiplexor for incoming opens, producing one outgoing open with the correct access). It also implements the default read and write semantics, which pass all reads and writes through to the provider media unprocessed. For simple schemes, the default behavior is sufficient. More complex partition schemes such as RAID will want to do extra processing for reads and writes.

## Topics

### Miscellaneous

- [copyPhysicalExtent](kernel/iopartitionscheme/1810278-copyphysicalextent.md)
- [handleClose](kernel/iopartitionscheme/1810310-handleclose.md)
- [handleIsOpen](kernel/iopartitionscheme/1810337-handleisopen.md)
- [handleOpen](kernel/iopartitionscheme/1810366-handleopen.md)
- [lockPhysicalExtents](kernel/iopartitionscheme/1810387-lockphysicalextents.md)
- [read](kernel/iopartitionscheme/1810409-read.md)
- [synchronizeCache](kernel/iopartitionscheme/1810446-synchronizecache.md)
- [unlockPhysicalExtents](kernel/iopartitionscheme/1810496-unlockphysicalextents.md)
- [unmap](kernel/iopartitionscheme/1810548-unmap.md)
- [write](kernel/iopartitionscheme/1810601-write.md)

### Instance Methods

- [attachMediaObjectToDeviceTree](kernel/iopartitionscheme/1590598-attachmediaobjecttodevicetree.md)
- [copyPhysicalExtent](kernel/iopartitionscheme/1590601-copyphysicalextent.md)
- [detachMediaObjectFromDeviceTree](kernel/iopartitionscheme/1590587-detachmediaobjectfromdevicetree.md)
- [free](kernel/iopartitionscheme/1590595-free.md)
- [getMetaClass](kernel/iopartitionscheme/1590597-getmetaclass.md)
- [getProvider](kernel/iopartitionscheme/1590584-getprovider.md)
- [getProvisionStatus](kernel/iopartitionscheme/1638730-getprovisionstatus.md)
- [handleClose](kernel/iopartitionscheme/1590600-handleclose.md)
- [handleIsOpen](kernel/iopartitionscheme/1590588-handleisopen.md)
- [handleOpen](kernel/iopartitionscheme/1590590-handleopen.md)
- [init](kernel/iopartitionscheme/1590579-init.md)
- [juxtaposeMediaObjects](kernel/iopartitionscheme/1590594-juxtaposemediaobjects.md)
- [lockPhysicalExtents](kernel/iopartitionscheme/1590593-lockphysicalextents.md)
- [read](kernel/iopartitionscheme/1590581-read.md)
- [setPriority](kernel/iopartitionscheme/1590591-setpriority.md)
- [synchronize](kernel/iopartitionscheme/1590585-synchronize.md)
- [unlockPhysicalExtents](kernel/iopartitionscheme/1590596-unlockphysicalextents.md)
- [unmap](kernel/iopartitionscheme/1590589-unmap.md)
- [write](kernel/iopartitionscheme/1590583-write.md)

## Relationships

### Inherits From

- [IOStorage](kernel/iostorage.md)

## See Also

### Schemes

- [IOAppleLabelScheme](kernel/ioapplelabelscheme.md)
- [IOApplePartitionScheme](kernel/ioapplepartitionscheme.md)
- [IOFDiskPartitionScheme](kernel/iofdiskpartitionscheme.md)
- [IOGUIDPartitionScheme](kernel/ioguidpartitionscheme.md)
- [IOFilterScheme](kernel/iofilterscheme.md)
