---
title: doAsyncReadWrite
framework: kernel
role: pseudoSymbol
path: kernel/ioblockstoragedevice/1811665-doasyncreadwrite
---

# doAsyncReadWrite

Start an asynchronous read or write operation.

## Declaration

```occ
#ifdef __LP64__
 virtual IOReturn doAsyncReadWrite(
 IOMemoryDescriptor *buffer, 
 UInt64 block,
 UInt64 nblks, 
 IOStorageAttributes *attributes, 
 IOStorageCompletion *completion) = 0; 
#else /* !__LP64__ */
virtual IOReturn doAsyncReadWrite(
 IOMemoryDescriptor *buffer, 
 UInt64 block,
 UInt64 nblks, 
 IOStorageAttributes *attributes, 
 IOStorageCompletion *completion); 
#endif 
/* !__LP64__ */
```

## Parameters

- `buffer`: An IOMemoryDescriptor describing the data-transfer buffer. The data direction is contained in the IOMemoryDescriptor. Responsibility for releasing the descriptor rests with the caller.
- `block`: The starting block number of the data transfer.
- `nblks`: The integral number of blocks to be transferred.
- `attributes`: Attributes of the data transfer. See IOStorageAttributes.
- `completion`: The completion routine to call once the data transfer is complete.

## See Also

### Miscellaneous

- [doEjectMedia](kernel/ioblockstoragedevice/1811672-doejectmedia.md)
- [doFormatMedia](kernel/ioblockstoragedevice/1811680-doformatmedia.md)
- [doGetFormatCapacities](kernel/ioblockstoragedevice/1811684-dogetformatcapacities.md)
- [doSynchronizeCache](kernel/ioblockstoragedevice/1811691-dosynchronizecache.md)
- [doUnmap](kernel/ioblockstoragedevice/1811698-dounmap.md)
- [getAdditionalDeviceInfoString](kernel/ioblockstoragedevice/1811705-getadditionaldeviceinfostring.md)
- [getProductString](kernel/ioblockstoragedevice/1811712-getproductstring.md)
- [getRevisionString](kernel/ioblockstoragedevice/1811717-getrevisionstring.md)
- [getVendorString](kernel/ioblockstoragedevice/1811724-getvendorstring.md)
- [getWriteCacheState](kernel/ioblockstoragedevice/1811731-getwritecachestate.md)
- [init](kernel/ioblockstoragedevice/1811746-init.md)
- [reportBlockSize](kernel/ioblockstoragedevice/1811753-reportblocksize.md)
- [reportEjectability](kernel/ioblockstoragedevice/1811761-reportejectability.md)
- [reportMaxValidBlock](kernel/ioblockstoragedevice/1811771-reportmaxvalidblock.md)
- [reportMediaState](kernel/ioblockstoragedevice/1811780-reportmediastate.md)
- [reportRemovability](kernel/ioblockstoragedevice/1811787-reportremovability.md)
- [reportWriteProtection](kernel/ioblockstoragedevice/1811796-reportwriteprotection.md)
- [requestIdle](kernel/ioblockstoragedevice/1811804-requestidle.md)
- [setWriteCacheState](kernel/ioblockstoragedevice/1811812-setwritecachestate.md)
