IOCTL_STORAGE_FIRMWARE_DOWNLOAD IOCTL (ntddstor.h)

A driver can use IOCTL_STORAGE_FIRMWARE_DOWNLOAD to download a firmware image to a storage device, but does not activate it. If the image to be downloaded is larger than the controller’s maximum data transfer size, this IOCTL will have to be called multiple times until the entire image is downloaded.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

Irp->AssociatedIrp.SystemBuffer contains STORAGE_HW_FIRMWARE_DOWNLOAD data that specifies information about the downloaded firmware to activate.

Input buffer length

Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of the parameter buffer at Irp->AssociatedIrp.SystemBuffer, which must be >= sizeof(STORAGE_HW_FIRMWARE_DOWNLOAD).

Output buffer

This IOCTL has no output structure.

Output buffer length

None.

Status block

The Information field is set to the number of bytes returned. The Status field is set to STATUS_SUCCESS, or possibly to STATUS_INSUFFICIENT_RESOURCES.

Requirements

Requirement Value
Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Header ntddstor.h (include Ntddstor.h)

See also

IOCTL_STORAGE_FIRMWARE_ACTIVATE

IOCTL_STORAGE_FIRMWARE_GET_INFO

STORAGE_HW_FIRMWARE_ACTIVATE

STORAGE_HW_FIRMWARE_DOWNLOAD

STORAGE_HW_FIRMWARE_INFO

STORAGE_HW_FIRMWARE_INFO_QUERY

STORAGE_HW_FIRMWARE_SLOT_INFO