> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QMI 概述

> QMI 客户端与服务消息、TLV 编码、事务和传输。

Qualcomm MSM Interface（QMI）是一种用于不同处理器或子系统上运行的软件组件之间通信的消息格式和接口模型。QMI 定义消息语义；它不管理硬件资源。诸如 QRTR 之类的传输负责承载编码后的消息。

## 客户端和服务模型

QMI 采用客户端/服务模型。一个客户端可以与多个服务通信，一个服务也可以为多个客户端提供服务。通信有两种形式：

* **请求与响应** —— 客户端发送一次操作请求，并将响应与该请求进行匹配。
* **指示（Indication）** —— 在客户端注册以接收某类事件之后，服务发送非请求触发的事件。

## QMI 消息格式

QMI 消息由一个小的头部和一系列带类型的字段组成。每个字段由一个类型标签标识，因此接收方知道预期接收什么数据。这种格式使得同一消息结构可以用于请求、响应和指示，无需为每种情形分别手写编码器。

## 编解组与传输分离

编解码库负责在你的代码所使用的 C 结构与 QMI 线路格式之间进行转换。接口库管理 QMI 句柄、服务连接、回调和消息传输。将这些职责分开，使得驱动可以只描述一次其数据，然后对请求、响应和指示复用同一个编解码器。

## 并发与时延

编解码器不访问全局共享状态，可以在没有编解码器级锁的情况下使用。接口库使用互斥锁保护共享资源。QMI 消息应保持足够短，以满足客户端的时延要求；对于耗时较长或较慢的操作，应设计显式的异步完成，而不是无限期地保持同步请求打开。

## 后续步骤

* [Client API](/zh/System/IPC-Guide/qmi/client-api) —— 创建客户端、连接到服务并发送请求
* [Service API](/zh/System/IPC-Guide/qmi/service-api) —— 注册服务并处理客户端请求
* [Examples](/zh/System/IPC-Guide/qmi/examples) —— 查看请求/响应和指示交换的工作方式
