STORAGE_HW_FIRMWARE_DOWNLOAD structure (winioctl.h)

This structure contains a firmware image payload to be downloaded to the target.

Syntax

typedef struct _STORAGE_HW_FIRMWARE_DOWNLOAD {
  DWORD     Version;
  DWORD     Size;
  DWORD     Flags;
  BYTE      Slot;
  BYTE      Reserved[3];
  DWORDLONG Offset;
  DWORDLONG BufferSize;
  BYTE      ImageBuffer[ANYSIZE_ARRAY];
} STORAGE_HW_FIRMWARE_DOWNLOAD, *PSTORAGE_HW_FIRMWARE_DOWNLOAD;

Members

Version

The version of this structure. This should be set to sizeof(STORAGE_HW_FIRMWARE_DOWNLOAD).

Size

The size of this structure and the download image buffer.

Flags

Flags associated with this download. The following are valid flags that this member can hold.

Flag Description
STORAGE_HW_FIRMWARE_REQUEST_FLAG_CONTROLLER Indicates that the target of the request is a controller or adapter, different than the device handler or object itself (e.g. NVMe SSD or HBA).
STORAGE_HW_FIRMWARE_REQUEST_FLAG_LAST_SEGMENT Indicates that the current firmware image segment is the last one.

Slot

The slot number that the firmware image will be downloaded to.

Reserved[3]

Reserved for future use.

Offset

The offset in this buffer of where the Image file begins. This should be aligned to ImagePayloadAlignment from STORAGE_HW_FIRMWARE_INFO.

BufferSize

The buffer size of the ImageBuffer. This should be a multiple of ImagePayloadAlignment from STORAGE_HW_FIRMWARE_INFO.

ImageBuffer[ANYSIZE_ARRAY]

The firmware image file.

Requirements

Requirement Value
Minimum supported client Windows 10 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Header winioctl.h (include Windows.h)

See also

IOCTL_STORAGE_FIRMWARE_ACTIVATE

IOCTL_STORAGE_FIRMWARE_DOWNLOAD

IOCTL_STORAGE_FIRMWARE_GET_INFO

STORAGE_HW_FIRMWARE_ACTIVATE

STORAGE_HW_FIRMWARE_INFO

STORAGE_HW_FIRMWARE_INFO_QUERY

STORAGE_HW_FIRMWARE_SLOT_INFO