---
title: "enqueueIORequest(with:transactionList:transactionListCount:firstFrameNumber:options:completionHandler:)"
framework: iousbhost
role: symbol
role_heading: Instance Method
path: "iousbhost/iousbhostpipe/enqueueiorequest(with:transactionlist:transactionlistcount:firstframenumber:options:completionhandler:)"
---

# enqueueIORequest(with:transactionList:transactionListCount:firstFrameNumber:options:completionHandler:)

## Declaration

```swift
func enqueueIORequest(with data: NSMutableData, transactionList: UnsafeMutablePointer<IOUSBHostIsochronousTransaction>, transactionListCount: Int, firstFrameNumber: UInt64, options: IOUSBHostIsochronousTransferOptions = [], completionHandler: (@Sendable (IOReturn, UnsafeMutablePointer<IOUSBHostIsochronousTransaction>) -> Void)? = nil) throws
```

```swift
func enqueueIORequest(with data: NSMutableData, transactionList: UnsafeMutablePointer<IOUSBHostIsochronousTransaction>, transactionListCount: Int, firstFrameNumber: UInt64, options: IOUSBHostIsochronousTransferOptions = []) async throws -> (IOReturn, UnsafeMutablePointer<IOUSBHostIsochronousTransaction>)
```

## Discussion

Discussion important: You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration: func enqueueIORequest(with data: NSMutableData, transactionList: UnsafeMutablePointer<IOUSBHostIsochronousTransaction>, transactionListCount: Int, firstFrameNumber: UInt64, options: IOUSBHostIsochronousTransferOptions = []) async throws -> (IOReturn, UnsafeMutablePointer<IOUSBHostIsochronousTransaction>) For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously.

## See Also

### Instance Methods

- [sendIORequest(with:transactionList:transactionListCount:firstFrameNumber:options:)](iousbhost/iousbhostpipe/sendiorequest(with:transactionlist:transactionlistcount:firstframenumber:options:).md)
