Edit

Share via


STORAGE_HW_BOOT_PARTITION_INFO structure (winioctl.h)

Contains boot partition information retrieved from an NVMe storage controller or disk. This structure is used as the input and output buffer for the IOCTL_STORAGE_BOOT_PARTITION_GET_INFO control code.

Syntax

typedef struct _STORAGE_HW_BOOT_PARTITION_INFO {
  DWORD     Version;
  DWORD     Size;
  DWORDLONG BPSZ;
  DWORD     Flags;
  DWORD     ImagePayloadAlignment;
  DWORD     ImagePayloadMaxSize;
  BYTE      SlotCount;
  BYTE      ABPID;
} STORAGE_HW_BOOT_PARTITION_INFO, *PSTORAGE_HW_BOOT_PARTITION_INFO;

Members

Version

The version of this structure. Set this to STORAGE_HW_BOOT_PARTITION_INFO_STRUCTURE_VERSION_V1 (0x01).

Size

The size of this structure, in bytes.

BPSZ

The boot partition size, in bytes.

Flags

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

Flag Description
STORAGE_HW_BOOT_PARTITION_REQUEST_FLAG_CONTROLLER Indicates that the target of the request is a controller or adapter, different than the device handle or object itself (for example, NVMe SSD or HBA).

ImagePayloadAlignment

The alignment of the image payload, in bytes. The maximum value is PAGE_SIZE. The transfer size must be a multiple of this value. Some protocols require at least sector-size alignment. A value of 0 indicates that the alignment value is invalid or not applicable.

ImagePayloadMaxSize

The maximum size for a single image payload command, in bytes.

SlotCount

The number of boot partition slots available. For NVMe devices, this value is 2 as defined by the NVMe specification.

ABPID

The active boot partition ID (0 or 1).

Remarks

This structure is returned by IOCTL_STORAGE_BOOT_PARTITION_GET_INFO, which issues a Get Log Page command for the Boot Partition Log Page (NVME_LOG_PAGE_BOOT_PARTITION) to retrieve boot partition state from the NVMe controller.

The ImagePayloadAlignment and ImagePayloadMaxSize values should be used when preparing image data for download via IOCTL_STORAGE_BOOT_PARTITION_DOWNLOAD. The download buffer offset must be aligned to ImagePayloadAlignment, and each chunk size should be a multiple of ImagePayloadAlignment and not exceed ImagePayloadMaxSize.

Note

These IOCTLs are currently only supported for PCIe NVMe devices.

Requirements

Requirement Value
Minimum supported client Windows 11 26H1
Header winioctl.h (include Windows.h)

See also

IOCTL_STORAGE_BOOT_PARTITION_GET_INFO

IOCTL_STORAGE_BOOT_PARTITION_DOWNLOAD

IOCTL_STORAGE_BOOT_PARTITION_ACTIVATE

STORAGE_HW_BOOT_PARTITION_DOWNLOAD

STORAGE_HW_BOOT_PARTITION_ACTIVATE