Contents

executeRequest

Declaration

#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

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