---
title: IOUserBlockStorageDevice
framework: BlockStorageDeviceDriverKit
role: symbol
role_heading: Class
platforms: [driverkit 21.0+]
path: blockstoragedevicedriverkit/iouserblockstoragedevice
---

# IOUserBlockStorageDevice

A DriverKit provider object that manages communications with a block storage device.

## Declaration

```occ
class IOUserBlockStorageDevice;
```

## Overview

Overview Implement your driver by subclassing this class and overriding all C++ pure virtual methods. Specifying the Driver’s Personality Information When you subclass IOUserBlockStorageDevice, update the IOKitPersonalities key of your driver extension’s Info.plist file with information to match your driver to the correct hardware. For this class, always include the keys and values in the following table:  |   |   |   |

## Topics

### Running the Service

- [init](blockstoragedevicedriverkit/iouserblockstoragedevice/init.md)
- [Start](blockstoragedevicedriverkit/iouserblockstoragedevice/start.md)
- [Stop](blockstoragedevicedriverkit/iouserblockstoragedevice/stop.md)
- [free](blockstoragedevicedriverkit/iouserblockstoragedevice/free.md)

### Reporting Device Metadata

- [GetVendorString](blockstoragedevicedriverkit/iouserblockstoragedevice/getvendorstring.md)
- [GetProductString](blockstoragedevicedriverkit/iouserblockstoragedevice/getproductstring.md)
- [GetRevisionString](blockstoragedevicedriverkit/iouserblockstoragedevice/getrevisionstring.md)
- [GetAdditionalInfoString](blockstoragedevicedriverkit/iouserblockstoragedevice/getadditionalinfostring.md)
- [DeviceString](blockstoragedevicedriverkit/devicestring.md)
- [GetDeviceParams](blockstoragedevicedriverkit/iouserblockstoragedevice/getdeviceparams.md)
- [DeviceParams](blockstoragedevicedriverkit/deviceparams.md)

### Reporting Device Capabilities

- [ReportEjectability](blockstoragedevicedriverkit/iouserblockstoragedevice/reportejectability.md)
- [ReportRemovability](blockstoragedevicedriverkit/iouserblockstoragedevice/reportremovability.md)
- [ReportWriteProtection](blockstoragedevicedriverkit/iouserblockstoragedevice/reportwriteprotection.md)

### Accessing the Device

- [DoAsyncUnmap](blockstoragedevicedriverkit/iouserblockstoragedevice/doasyncunmap.md)
- [BlockRange](blockstoragedevicedriverkit/blockrange.md)
- [DoAsyncSynchronize](blockstoragedevicedriverkit/iouserblockstoragedevice/doasyncsynchronize.md)
- [DoAsyncEjectMedia](blockstoragedevicedriverkit/iouserblockstoragedevice/doasyncejectmedia.md)
- [Complete](blockstoragedevicedriverkit/iouserblockstoragedevice/complete.md)
- [DoAsyncReadWrite](blockstoragedevicedriverkit/iouserblockstoragedevice/doasyncreadwrite.md)
- [IOUserStorageOptions](blockstoragedevicedriverkit/iouserstorageoptions.md)
- [CompleteIO](blockstoragedevicedriverkit/iouserblockstoragedevice/completeio.md)

### Instance Methods

- [DoAsyncUnmapPriv](blockstoragedevicedriverkit/iouserblockstoragedevice/doasyncunmappriv.md)
- [RegisterDext](blockstoragedevicedriverkit/iouserblockstoragedevice/registerdext.md)

## Relationships

### Inherits From

- [IOService](driverkit/ioservice.md)
