---
title: FSVolume.ReadWriteHandler
framework: fskit
role: symbol
role_heading: Protocol
path: fskit/fsvolume/readwritehandler
---

# FSVolume.ReadWriteHandler

Methods implemented for read and write operations that deliver data to and from the extension.

## Declaration

```swift
protocol ReadWriteHandler : NSObjectProtocol
```

## Overview

Overview Most volumes conform to either this protocol or FSVolume.KernelOffloadedIOHandler. You can conform to both if you need to provide kernel-offloaded I/O only for certain files. In that case, files with the inhibitKernelOffloadedIO attribute set use this protocol, and those without it use FSVolume.KernelOffloadedIOHandler. A volume that doesn’t conform to either protocol can’t support any I/O operation. important: This protocol replaces the FSVolume.ReadWriteOperations protocol. It exposes the same functionality, while using FSVolumeHandlerResult objects. These objects add the ability to reply with FSItem.Attributes and free space from the relevant methods.

## Topics

### Reading and writing

- [read(from:at:length:into:replyHandler:)](fskit/fsvolume/readwritehandler/read(from:at:length:into:replyhandler:).md)
- [FSMutableFileDataBuffer](fskit/fsmutablefiledatabuffer.md)
- [FSReadFileResult](fskit/fsreadfileresult.md)
- [write(contents:to:at:replyHandler:)](fskit/fsvolume/readwritehandler/write(contents:to:at:replyhandler:).md)
- [FSWriteFileResult](fskit/fswritefileresult.md)

## Relationships

### Inherits From

- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Implementing optional handlers

- [FSVolume.OpenCloseHandler](fskit/fsvolume/openclosehandler.md)
- [FSVolume.AccessCheckHandler](fskit/fsvolume/accesscheckhandler.md)
- [FSVolume.RenameHandler](fskit/fsvolume/renamehandler.md)
- [FSVolume.PreallocateHandler](fskit/fsvolume/preallocatehandler.md)
- [FSVolume.XattrHandler](fskit/fsvolume/xattrhandler.md)
- [FSVolume.ItemDeactivationHandler](fskit/fsvolume/itemdeactivationhandler.md)
- [FSVolume.KernelOffloadedIOHandler](fskit/fsvolume/kerneloffloadediohandler.md)
- [FSVolume.DataCacheHandler](fskit/fsvolume/datacachehandler.md)
- [FSVolume.SeekRegionHandler](fskit/fsvolume/seekregionhandler.md)
