IOCTL_STORAGE_FIRMWARE_GET_INFO - NtDoc

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

// CTL_CODE(0x002d, 0x700, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_FIRMWARE_GET_INFO 0x002D1C00
View the official Windows Driver Kit DDI reference
// winioctl.h

// CTL_CODE(0x002d, 0x700, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_STORAGE_FIRMWARE_GET_INFO 0x002D1C00
View the official Win32 API reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ni-ntddstor-ioctl_storage_firmware_get_info)

IOCTL_STORAGE_FIRMWARE_GET_INFO IOCTL

Description

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 varies based on storage protocol.

Parameters

Major code

Input buffer

Irp->AssociatedIrp.SystemBuffer contains STORAGE_HW_FIRMWARE_INFO_QUERY data that specifies the target of the request.

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_INFO_QUERY).

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

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/output buffer

Input/output buffer length

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.

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


Win32 API reference (ni-winioctl-ioctl_storage_firmware_get_info)

IOCTL_STORAGE_FIRMWARE_GET_INFO IOCTL

Description

Windows applications can use this control code to query the 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.

To perform this operation, call the DeviceIoControl function with the following parameters.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                 // handle to device
  IOCTL_STORAGE_FIRMWARE_GET_INFO,  // dwIoControlCode
  (LPDWORD) lpInBuffer,             // input buffer
  (DWORD) nInBufferSize,            // size of input buffer
  (LPDWORD) lpOutBuffer,            // output buffer
  (DWORD) nOutBufferSize,           // size of output buffer
  (LPDWORD) lpBytesReturned,        // number of bytes returned
  (LPOVERLAPPED) lpOverlapped       // OVERLAPPED structure
);

Parameters

Input buffer

Input buffer length

Output buffer

Output buffer length

Input/output buffer

Input/output buffer length

Status block

Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful.

Otherwise, Status to the appropriate error condition as a NTSTATUS code.

For more information, see NTSTATUS Values.

See also