libnvme\_mi\_mi\_read\_mi\_data\_ctrl(9) libnvme API manual libnvme\_mi\_mi\_read\_mi\_data\_ctrl(9)

# [NAME](#NAME)

libnvme\_mi\_mi\_read\_mi\_data\_ctrl - Perform a Read MI Data Structure command, retrieving controller information

# [SYNOPSIS](#SYNOPSIS)

**int libnvme\_mi\_mi\_read\_mi\_data\_ctrl** **(struct libnvme\_mi\_ep \*ep ,** **\_\_u16 ctrl\_id ,** **struct nvme\_mi\_read\_ctrl\_info \*ctrl );**

# [ARGUMENTS](#ARGUMENTS)

[ep](#ep)

endpoint for MI communication

[ctrl\_id](#ctrl_id)

ID of controller to query

[ctrl](#ctrl)

controller data to populate

# [DESCRIPTION](#DESCRIPTION)

Retrieves the Controller Information Data Structure for the attached controller with ID *ctrlid*.

See *struct nvme\_mi\_read\_ctrl\_info*.

# [RETURN](#RETURN)

The nvme command status if a response was received (see *enum nvme\_status\_field*) or negative error code otherwise.

libnvme\_mi\_mi\_read\_mi\_data\_ctrl September 2026

---

Document: libnvme_mi_mi_read_mi_data_ctrl-libnvme3(2) from nvme-cli 3.1-r0 (Chainguard OS)
Source: https://github.com/linux-nvme/nvme-cli
