### Method

# GUsb Device bulk_transfer_async

since: 0.1.0

#### Declaration

    void
    g_usb_device_bulk_transfer_async (
      GUsbDevice* self,
      guint8 endpoint,
      guint8* data,
      gsize length,
      guint timeout,
      GCancellable* cancellable,
      GAsyncReadyCallback callback,
      gpointer user_data
    )

#### Description

Do an async bulk transfer.

Available since: 0.1.0

#### Parameters

`endpoint`

  Type: `guint8`

  The address of a valid endpoint to communicate with.

`data`

  Type: 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 method.

`length`

  Type: `gsize`

  The length field for the setup packet.

`timeout`

  Type: `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`

  Type: `GCancellable`

  A `GCancellable`, or `NULL`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`callback`

  Type: `GAsyncReadyCallback`

  The function to run on completion.

  The argument can be `NULL`.

`user_data`

  Type: `gpointer`

  The data to pass to `callback`.

  The argument can be `NULL`.
  The data is owned by the caller of the method.