STORAGE_HW_FIRMWARE_DOWNLOAD - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// ntddstor.h

typedef struct _STORAGE_HW_FIRMWARE_DOWNLOAD {
  ULONG     Version;
  ULONG     Size;
  ULONG     Flags;
  UCHAR     Slot;
  UCHAR     Reserved[3];
  ULONGLONG Offset;
  ULONGLONG BufferSize;
  UCHAR     ImageBuffer[ANYSIZE_ARRAY];
} STORAGE_HW_FIRMWARE_DOWNLOAD, *PSTORAGE_HW_FIRMWARE_DOWNLOAD;
View the official Windows Driver Kit DDI reference
// winioctl.h

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;
View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-ntddstor-_storage_hw_firmware_download)

_STORAGE_HW_FIRMWARE_DOWNLOAD structure

Description

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

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 handle 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

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

The firmware image file.


Win32 API reference (ns-winioctl-storage_hw_firmware_download)

STORAGE_HW_FIRMWARE_DOWNLOAD structure

Description

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

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

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

The firmware image file.

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