GUsb.Device.control_transfer_async

### Method

# GUsb Devicecontrol_transfer_async

#### Declaration

    void
    g_usb_device_control_transfer_async (
      GUsbDevice* self,
      GUsbDeviceDirection direction,
      GUsbDeviceRequestType request_type,
      GUsbDeviceRecipient recipient,
      guint8 request,
      guint16 value,
      guint16 idx,
      guint8* data,
      gsize length,
      guint timeout,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description

Do an async control transfer.

Available since: | 0.1.0

#### Parameters

`direction` | `GUsbDeviceDirection`
| No description available.
`request_type` | `GUsbDeviceRequestType`
| No description available.
`recipient` | `GUsbDeviceRecipient`
| No description available.
`request` | `guint8`
| No description available.
`value` | `guint16`
| No description available.
`idx` | `guint16`
| No description available.
`data` | An array of `guint8`
| A suitably-sized data buffer for either input or output.
| The length of the array is specified in the `length` argument.
| The data is owned by the caller of the function.
`length` | `gsize`
| The length field for the setup packet.
`timeout` | `guint`
| Timeout timeout (in milliseconds) that this function should wait before giving up due to no response being received. For an unlimited timeout, use 0.
`cancellable` | `GCancellable`
| A `GCancellable`, or `NULL`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`callback` | `GAsyncReadyCallback`
| The function to run on completion.
| The argument can be `NULL`.
`user_data` | `gpointer`
| The data to pass to `callback`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.