“与 SDP 服务器进行通信”概述

蓝牙驱动程序堆栈支持服务发现协议 (SDP)。 此协议允许配置文件驱动程序搜索或浏览本地无线电范围内的蓝牙设备提供的服务。 SDP 使用逻辑链接控制和适应协议 (L2CAP) 作为其传输协议,并遵循客户端-服务器模型。

服务是可以代表另一个实体提供信息、执行操作或控制资源的任何实体。 服务可以实现为软件、硬件或硬件和软件的组合。 服务记录完全由服务属性列表组成。

L2CAP 服务器配置文件驱动程序注册自身以接受传入的 L2CAP 连接请求后,它可以使用 IOCTL_BTH_SDP_SUBMIT_RECORDIOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO 通过 SDP 协议播发其服务。 每个 SDP 记录都作为流提交。 如果配置文件驱动程序使用 IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO,它会将 BTH_SDP_RECORD 结构追加到原始流,其中包含不属于 SDP 记录本身的额外属性。 其中包括请求客户端的安全要求、SDP 记录的发布选项、设备类 (CoD) 信息、记录长度以及记录本身。

配置文件驱动程序播发其服务后,其他蓝牙设备可以搜索或浏览这些服务。 有关 SDP 服务的详细信息,请参阅访问 SDP 服务信息

若要停止使用 SDP 播发服务,配置文件驱动程序会使用 IOCTL_BTH_SDP_REMOVE_RECORD