STORAGE_HW_FIRMWARE_INFO structure

This structure contains information about the device firmware.

Syntax

typedef struct _STORAGE_HW_FIRMWARE_INFO {
  DWORD                         Version;
  DWORD                         Size;
  BYTE                          SupportUpgrade  :1;
  BYTE                          Reserved0  :7;
  BYTE                          SlotCount;
  BYTE                          ActiveSlot;
  BYTE                          PendingActivateSlot;
  BOOLEAN                       FirmwareShared;
  BYTE                          Reserved[3];
  DWORD                         ImagePayloadAlignment;
  DWORD                         ImagePayloadMaxSize;
  STORAGE_HW_FIRMWARE_SLOT_INFO Slot[ANYSIZE_ARRAY];
} STORAGE_HW_FIRMWARE_INFO, *PSTORAGE_HW_FIRMWARE_INFO;

Members

Version

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

Size

The size of this structure as a buffer including slot.

SupportUpgrade

Indicates that this firmware supports an upgrade.

Reserved0

Reserved for future use.

SlotCount

The number of firmware slots on the device. This is the dimension of the Slot array.

Note

Some devices can store more than 1 firmware image, if they have more than 1 firmware slot.

ActiveSlot

The firmware slot containing the currently active/running firmware image.

PendingActivateSlot

The firmware slot that is pending activation.

FirmwareShared

Indicates that the firmware applies to both the device and controller/adapter, e.g. NVMe SSD.

Reserved

Reserved for future use.

ImagePayloadAlignment

The alignment of the image payload, in number of bytes. The maximum is PAGE_SIZE. The transfer size is a mutliple of this size. Some protocols require at least sector size. When this value is set to 0, this means that this value is invalid.

ImagePayloadMaxSize

The image payload maximum size, this is used for a single command.

Slot

Contains the slot information for each slot on the device, of type STORAGE_HW_FIRMWARE_SLOT_INFO.

Requirements

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

See also

IOCTL_STORAGE_FIRMWARE_ACTIVATE

STORAGE_HW_FIRMWARE_ACTIVATE

IOCTL_STORAGE_FIRMWARE_DOWNLOAD

STORAGE_HW_FIRMWARE_DOWNLOAD

IOCTL_STORAGE_FIRMWARE_GET_INFO

STORAGE_HW_FIRMWARE_INFO_QUERY

STORAGE_HW_FIRMWARE_SLOT_INFO