# IOReq

An item used to communicate between a task and an I/O device.

### Description

An IOReq item is used to carry information from a client task to a device in order to have the device perform some operation. Once the device is stores return information in the IOReq, and returns it to the client task.

### Folio

kernel

### Item Type

IOREQNODE

### Create

`CreateIOReq(), CreateItem()`

### Delete

`DeleteIOReq`(), DeleteItem()

### Query

`FindItem`()

### Modify

`SetItemOwner`(), SetItemPri()

### Use

`SendIO`(), DoIO(), AbortIO(), WaitIO(), CheckIO()

### Tags

CREATEIOREQ_TAG_REPLYPORT

(Item) Create. The item number of a message port.This is where the device will send a message whenever an I/O operation completes. This argument is optional. If you do not specify it, the device will send your task the `SIGF_IODONE` signal instead of a message.

CREATEIO_TAG_DEVICE
  (Item) Create. This specifies the item number of the device that this IOReq will be used to communicate with. This item number is obtained by calling OpenNamedDevice() or FindAndOpenNamedDevice().