libnvme\_exec\_io\_passthru(9) libnvme API manual libnvme\_exec\_io\_passthru(9)

# [NAME](#NAME)

libnvme\_exec\_io\_passthru - Submit an IO passthru command and wait

# [SYNOPSIS](#SYNOPSIS)

**int libnvme\_exec\_io\_passthru** **(struct libnvme\_transport\_handle \*hdl ,** **struct libnvme\_passthru\_cmd \*cmd );**

# [ARGUMENTS](#ARGUMENTS)

[hdl](#hdl)

Transport handle

[cmd](#cmd)

The nvme IO command to send

# [DESCRIPTION](#DESCRIPTION)

Synchronous command execution. Note: when io\_uring is enabled, this shares the async queue. Avoid mixing this with direct async API usage on the same handle. For batching, use the async API exclusively.

# [RETURN](#RETURN)

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

libnvme\_exec\_io\_passthru September 2026

---

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