---
title: executeRequest
framework: kernel
role: pseudoSymbol
path: kernel/ioblockstoragedriver/1811817-executerequest
---

# executeRequest

## Declaration

```occ
#ifdef __LP64__
 virtual void executeRequest(
 UInt64 byteStart, 
 IOMemoryDescriptor *buffer, 
 IOStorageAttributes *attributes, 
 IOStorageCompletion *completion, 
 Context *context); 
#else /* !__LP64__ */
virtual void executeRequest(
 UInt64 byteStart, 
 IOMemoryDescriptor *buffer, 
 IOStorageCompletion completion, 
 Context *context); 
#endif 
/* !__LP64__ */
```

## Parameters

- `byteStart`: Starting byte offset for the data transfer.
- `buffer`: Buffer for the data transfer. The size of the buffer implies the size of the data transfer.
- `attributes`: Attributes of the data transfer. See IOStorageAttributes. It is the responsibility of the callee to maintain the information for the duration of the data transfer, as necessary.
- `completion`: Completion routine to call once the data transfer is complete. It is the responsibility of the callee to maintain the information for the duration of the data transfer, as necessary.
- `context`: Additional context information for the data transfer (e.g. block size).

## Overview

Overview Execute an asynchronous storage request. The request is guaranteed to be block-aligned. This method is part of a sequence of methods invoked for each read/write request. The first is prepareRequest, which allocates and prepares some context for the transfer; the second is deblockRequest, which aligns the transfer at the media's block boundaries; third is breakUpRequest, which breaks up the transfer into multiple sub-transfers when certain hardware constraints are exceeded; fourth is executeRequest, which implements the actual transfer from the block storage device.

## See Also

### Miscellaneous

- [acceptNewMedia](kernel/ioblockstoragedriver/1811574-acceptnewmedia.md)
- [addToBytesTransferred](kernel/ioblockstoragedriver/1811596-addtobytestransferred.md)
- [allocateContext](kernel/ioblockstoragedriver/1811624-allocatecontext.md)
- [breakUpRequest](kernel/ioblockstoragedriver/1811639-breakuprequest.md)
- [checkForMedia](kernel/ioblockstoragedriver/1811654-checkformedia.md)
- [constrainByteCount](kernel/ioblockstoragedriver/1811669-constrainbytecount.md)
- [copyPhysicalExtent](kernel/ioblockstoragedriver/1811687-copyphysicalextent.md)
- [deblockRequest](kernel/ioblockstoragedriver/1811703-deblockrequest.md)
- [decommissionMedia](kernel/ioblockstoragedriver/1811732-decommissionmedia.md)
- [deleteContext](kernel/ioblockstoragedriver/1811760-deletecontext.md)
- [ejectMedia](kernel/ioblockstoragedriver/1811792-ejectmedia.md)
- [formatMedia](kernel/ioblockstoragedriver/1811835-formatmedia.md)
- [getDeviceTypeName](kernel/ioblockstoragedriver/1811863-getdevicetypename.md)
- [getFormatCapacities](kernel/ioblockstoragedriver/1811884-getformatcapacities.md)
- [getMediaBlockSize](kernel/ioblockstoragedriver/1811916-getmediablocksize.md)
- [getMediaState](kernel/ioblockstoragedriver/1811940-getmediastate.md)
- [getStatistic](kernel/ioblockstoragedriver/1811958-getstatistic.md)
- [getStatistics](kernel/ioblockstoragedriver/1811976-getstatistics.md)
- [handleClose](kernel/ioblockstoragedriver/1811990-handleclose.md)
- [handleIsOpen](kernel/ioblockstoragedriver/1811999-handleisopen.md)
- [handleOpen](kernel/ioblockstoragedriver/1812007-handleopen.md)
- [handleStart](kernel/ioblockstoragedriver/1812019-handlestart.md)
- [incrementErrors](kernel/ioblockstoragedriver/1812024-incrementerrors.md)
- [incrementRetries](kernel/ioblockstoragedriver/1812030-incrementretries.md)
- [initMediaState](kernel/ioblockstoragedriver/1812034-initmediastate.md)
- [instantiateDesiredMediaObject](kernel/ioblockstoragedriver/1812038-instantiatedesiredmediaobject.md)
- [instantiateMediaObject](kernel/ioblockstoragedriver/1812042-instantiatemediaobject.md)
- [isMediaEjectable](kernel/ioblockstoragedriver/1812044-ismediaejectable.md)
- [isMediaRemovable](kernel/ioblockstoragedriver/1812049-ismediaremovable.md)
- [isMediaWritable](kernel/ioblockstoragedriver/1812052-ismediawritable.md)
- [lockPhysicalExtents](kernel/ioblockstoragedriver/1812055-lockphysicalextents.md)
- [mediaStateHasChanged](kernel/ioblockstoragedriver/1812057-mediastatehaschanged.md)
- [prepareRequest](kernel/ioblockstoragedriver/1812063-preparerequest.md)
- [read](kernel/ioblockstoragedriver/1812076-read.md)
- [recordMediaParameters](kernel/ioblockstoragedriver/1812090-recordmediaparameters.md)
- [rejectMedia](kernel/ioblockstoragedriver/1812100-rejectmedia.md)
- [requestIdle](kernel/ioblockstoragedriver/1812117-requestidle.md)
- [synchronizeCache](kernel/ioblockstoragedriver/1812132-synchronizecache.md)
- [unlockPhysicalExtents](kernel/ioblockstoragedriver/1812149-unlockphysicalextents.md)
- [unmap](kernel/ioblockstoragedriver/1812179-unmap.md)
- [validateNewMedia](kernel/ioblockstoragedriver/1812204-validatenewmedia.md)
- [write](kernel/ioblockstoragedriver/1812222-write.md)
