在蓝牙配置文件驱动程序中接受 SCO 连接

SCO 配置文件驱动程序可以注册自身,以响应来自远程设备的面向同步连接 (SCO) 的传入连接请求。 例如,用于无绳电话配置文件 (CTP) 设备的 SCO 配置文件驱动程序会响应来自 CTP 设备的传入 SCO 连接请求,即接受或拒绝请求。 如果服务器配置文件驱动程序接受请求,则服务器配置文件驱动程序会响应来自设备的输入,并将该输入传递给蓝牙驱动程序堆栈。

服务器配置文件驱动程序必须执行以下步骤,才能接受来自远程蓝牙设备的传入 SCO 连接请求。

接收来自远程设备的传入 SCO 连接请求

  1. 配置文件驱动程序应生成并发送BRB_SCO_REGISTER_SERVER 请求,以便向蓝牙驱动程序堆栈注册 SCO 回调函数,以便堆栈可以通知配置文件驱动程序有传入 SCO 连接请求。

  2. 当蓝牙驱动程序堆栈接收来自远程设备的传入 SCO 连接请求时,会调用配置文件驱动程序之前注册的 SCO 回调函数。 蓝牙驱动程序堆栈会将值 ScoIndicationRemoteConnect 传递给回调函数的指示参数。

  3. 若要响应传入连接请求,配置文件驱动程序应生成并发送 BRB_SCO_OPEN_CHANNEL_RESPONSE 请求。 根据使用此请求传递的 _BRB_SCO_OPEN_CHANNEL 结构的 Response 成员的值,服务器配置文件驱动程序接受或拒绝连接请求。

  4. 如果服务器配置文件驱动程序接受连接,则蓝牙驱动程序堆栈可以调用 _BRB_SCO_OPEN_CHANNEL 结构的 Callback 成员中指定的 SCO 回调函数,以通知服务器配置文件驱动程序有 SCO 连接更改。

配置文件驱动程序接受连接请求后,可以使用其他 BRB 通过新建立的 SCO 连接发送和接收数据。

若要停止接收远程设备 SCO 连接尝试的通知,则在配置文件驱动程序处理 IRP_MN_REMOVE_DEVICE 即插即用删除通知时,配置文件驱动程序应生成并发送BRB_SCO_UNREGISTER_SERVER 请求,以注销服务器。

有关通知和回调函数的详细信息,请参阅支持蓝牙事件通知