# Communicating With Devices

A task sends commands using the IOInfo data structure to a device. The `IOInfo.ioi_Command` field is set to the command a task sends to a device. In addition to the command, some devices allow the task to specify options to the command. The options are set up by defining the `IOInfo.ioi_CmdOptions` field. The `IOInfo.ioi_Send` and `IOInfo.ioi_Recv` substructures must also be set for the information to be sent to the device and to receive it back from the device. The reference sections that follow provide detailed information about the commands and command options, and send and receive buffers that a task uses to communicate with a device.