<!--
{
  "availability" : [
    "macOS: 15.4.0 - 27.0.0"
  ],
  "documentType" : "symbol",
  "framework" : "FSKit",
  "identifier" : "/documentation/FSKit/FSVolumeKernelOffloadedIOOperations",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "FSKit"
    ],
    "preciseIdentifier" : "c:objc(pl)FSVolumeKernelOffloadedIOOperations"
  },
  "title" : "FSVolumeKernelOffloadedIOOperations"
}
-->

# FSVolumeKernelOffloadedIOOperations

Methods and properties implemented by volumes that use kernel-offloaded I/O to achieve higher file transfer performance.

```
protocol FSVolumeKernelOffloadedIOOperations : NSObjectProtocol
```

## Overview

A volume that conforms to this protocol supplies file extent mappings to FSKit, which allows file data transfers to take place in the kernel.
This approach provides higher-performance data transfer than transferring all file data between the module and kernel, while still allowing the file system to run in user space.

This protocol uses *extents* to provide the kernel the logical-to-physical mapping of a given file.
An extent describes a physical offset on disk, and a length and a logical offset within the file.
You don’t manage extents directly.
Instead, FSKit provides you with an [`FSExtentPacker`](/documentation/FSKit/FSExtentPacker) to define and pack the extents in your implementations of this protocol’s methods.

Most volumes conform to either this protocol or [`FSVolume.ReadWriteOperations`](/documentation/FSKit/FSVolume/ReadWriteOperations).
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`](/documentation/FSKit/FSItem/Attribute/inhibitKernelOffloadedIO) attribute set use [`FSVolume.ReadWriteOperations`](/documentation/FSKit/FSVolume/ReadWriteOperations), and those without it use this protocol.
A volume that doesn’t conform to either protocol can’t support any file I/O operation.

> Deprecated: Use ``doc://FSKit/documentation/FSKit/FSVolume/KernelOffloadedIOHandler`` instead.

## Topics

### Performing mapped I/O

[`blockmapFile(_:offset:length:flags:operationID:packer:replyHandler:)`](/documentation/FSKit/FSVolumeKernelOffloadedIOOperations/blockmapFile(_:offset:length:flags:operationID:packer:replyHandler:))

Maps a file’s disk space into extents, allowing the kernel to perform I/O with that space.

[`FSBlockmapFlags`](/documentation/FSKit/FSBlockmapFlags)

Flags that describe the behavior of a blockmap operation.

[`completeIO(for:offset:length:status:flags:operationID:replyHandler:)`](/documentation/FSKit/FSVolumeKernelOffloadedIOOperations/completeIO(for:offset:length:status:flags:operationID:replyHandler:))

Completes an I/O operation for a given file.

[`FSCompleteIOFlags`](/documentation/FSKit/FSCompleteIOFlags)

Flags that describe the behavior of an I/O completion operation.

### Working with items

[`createFile(name:in:attributes:packer:replyHandler:)`](/documentation/FSKit/FSVolumeKernelOffloadedIOOperations/createFile(name:in:attributes:packer:replyHandler:))

Creates a new file item and map its disk space.

[`FSItem.SetAttributesRequest`](/documentation/FSKit/FSItem/SetAttributesRequest)

A request to set attributes on an item.

[`lookupItem(name:in:packer:replyHandler:)`](/documentation/FSKit/FSVolumeKernelOffloadedIOOperations/lookupItem(name:in:packer:replyHandler:))

Looks up an item within a directory and maps its disk space.

[`preallocateSpace(for:at:length:flags:packer:replyHandler:)`](/documentation/FSKit/FSVolumeKernelOffloadedIOOperations/preallocateSpace(for:at:length:flags:packer:replyHandler:))

Preallocates and maps disk space for the given file.

[`FSVolume.PreallocateFlags`](/documentation/FSKit/FSVolume/PreallocateFlags)

Behavior flags for preallocation operations.

### Mapping file extents

[`FSExtentPacker`](/documentation/FSKit/FSExtentPacker)

A type that directs the kernel to map space on disk to a specific file managed by this file system.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)