IOCTL_STORAGE_FIRMWARE_GET_INFO IOCTL (ntddstor.h)

A driver can use IOCTL_STORAGE_FIRMWARE_GET_INFO to query a storage device for detailed firmware information. A successful call will return information about firmware revisions, activity status, as well as read/write attributes for each slot. The amount of data returned will vary based on storage protocol.

Major code

IRP_MJ_DEVICE_CONTROL

Input buffer

Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of the parameter buffer at Irp->AssociatedIrp.SystemBuffer, which must be >= sizeof(STORAGE_HW_FIRMWARE_INFO_QUERY). Irp->AssociatedIrp.SystemBuffer contains STORAGE_HW_FIRMWARE_INFO_QUERY data that specifies the target of the request. Parameters.DeviceIoControl.OutputBufferLength indicates the number of bytes that can be written to Irp->AssociatedIrp.SystemBuffer. OutputBufferLength must be sizeof(STORAGE_HW_FIRMWARE_INFO) + sizeof(STORAGE_HW_FIRMWARE_SLOT_INFO) * (STORAGE_HW_FIRMWARE_INFO.SlotCount -1).

Input buffer length

The length of .

Output buffer

The driver returns query data to the buffer at Irp->AssociatedIrp.SystemBuffer. The output buffer should contain a STORAGE_HW_FIRMWARE_INFO and STORAGE_HW_FIRMWARE_SLOT_INFO structure for each slot on the device.

Output buffer length

The length of .

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_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER, or STATUS_NOT_SUPPORTED.

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_DOWNLOAD

STORAGE_HW_FIRMWARE_ACTIVATE

STORAGE_HW_FIRMWARE_DOWNLOAD

STORAGE_HW_FIRMWARE_INFO

STORAGE_HW_FIRMWARE_INFO_QUERY

STORAGE_HW_FIRMWARE_SLOT_INFO