### Method

# FwupdPlugin Device read_firmware

#### Declaration [src]

    FuFirmware*
    fu_device_read_firmware (
      FuDevice* self,
      FuProgress* progress,
      guint64 flags,
      GError** error
    )

#### Description [src]

Reads firmware from the device by calling a plugin-specific vfunc. The device subclass should try to ensure the firmware does not contain any serial numbers or user-configuration values and can be used to calculate the device checksum.

The return value can be converted to a blob of memory using fu_firmware_write().

Available since: | 2.0.11

#### Parameters

`progress` | `FuProgress`
| A `FuProgress`.
| The data is owned by the caller of the function.
`flags` | `guint64`
| `FuFirmwareParseFlags`, e.g. `FU_FIRMWARE_PARSE_FLAG_NONE`.
`error` | `GError **`
| The return location for a `GError*`, or `NULL`.

#### Return value

Returns: | `FuFirmware`
| A `FuFirmware`, or `NULL` for error.
| The caller of the method takes ownership of the data, and is responsible for freeing it.