IsochIO
Performs a synchronous or asynchronous request on an isochronous endpoint.
Declaration
virtual kern_return_t IsochIO(IOMemoryDescriptor *dataBuffer, IOMemoryDescriptor *frameList, uint64_t firstFrameNumber, OSAction *completion);Parameters
- dataBuffer:
The buffer to store the data. When transferring data to the device, this buffer contains the data to send. When receiving data from the device, this buffer is empty initially.
- frameList:
A valid memory descriptor containing the frame list, which is an array of Iousbisochronousframe structures. For example, a frame list with 8 frames should be of size
(sizeof(IOUSBIsochronousFrame) * 8). - firstFrameNumber:
The starting frame number for the request. You can get the current frame number from the Getframenumber method of Iousbhostdevice or Iousbhostinterface. Specify
0to begin the transfer on the next available frame (XHCI only). - completion:
An optional completion handler. To create a synchronous I/O request, specify
NULL. To create an asynchronous request, provide an appropriate action method with your callback routine. This method copies your action object, so you can allocate that object on the stack if you prefer.
Return Value
kIOReturnSuccess on success, or another value if an error occurs. See Error Codes.
Discussion
Use this method to issue isochronous requests. Allocate and initialize an array of IOUSBIsochronousFrame structures, which describe the frames to transfer. See IOUSBIsochronousFrame for information regarding structure initialization requirements and usage.