bthddi.h) (_BRB_SCO_OPEN_CHANNEL 结构

_BRB_SCO_OPEN_CHANNEL结构描述向远程设备打开的 SCO 通道,或配置文件驱动程序接受或拒绝远程设备发起的传入 SCO 连接请求的响应。

语法

struct _BRB_SCO_OPEN_CHANNEL {
  BRB_HEADER                 Hdr;
  BTH_ADDR                   BtAddress;
  ULONG                      TransmitBandwidth;
  ULONG                      ReceiveBandwidth;
  USHORT                     MaxLatency;
  USHORT                     PacketType;
  USHORT                     ContentFormat;
  USHORT                     Reserved;
  SCO_RETRANSMISSION_EFFORT  RetransmissionEffort;
  ULONG                      ChannelFlags;
  ULONG                      CallbackFlags;
  PFNSCO_INDICATION_CALLBACK Callback;
  PVOID                      CallbackContext;
  PVOID                      ReferenceObject;
  SCO_CHANNEL_HANDLE         ChannelHandle;
  UCHAR                      Response;
};

成员

Hdr

包含当前 BRB 相关信息的 BRB_HEADER 结构。

BtAddress

要打开 SCO 通道的远程设备的蓝牙地址。

TransmitBandwidth

要分配给 SCO 通道的传输带宽(以字节/秒为单位)。

ReceiveBandwidth

要分配给 SCO 通道的接收带宽(以字节/秒为单位)。

MaxLatency

一个 值,该值表示同步间隔总和的上限和 (e) SCO 窗口的大小。 下表列出了可能的值。

说明
0x0000 0x0003 保留供将来使用。
0x0004 0xFFFE 通道的可能 MaxLatency 值的范围。
0xFFFF 通道没有首选 的 MaxLatency 设置。

PacketType

指示 SCO 连接支持的数据包类型的标志或标志组合。 这些 SCO 数据包类型由蓝牙 SIG 定义。 有关这些标志的详细信息,请参阅蓝牙规范。 可能的值包括:

SCO_HV1

SCO_HV2

SCO_HV3

SCO_EV3

SCO_EV4

SCO_EV5

ContentFormat

通道的音频语音设置。 使用以下定义对此成员进行编码:

SCO_VS_AIR_CODING_DATA
SCO_VS_AIR_CODING_FORMAT_ALAW
SCO_VS_AIR_CODING_FORMAT_CVSD
SCO_VS_AIR_CODING_FORMAT_MASK
SCO_VS_AIR_CODING_FORMAT_MULAW
SCO_VS_IN_CODING_ALAW
SCO_VS_IN_CODING_LINEAR
SCO_VS_IN_CODING_MASK
SCO_VS_IN_CODING_MULAW
SCO_VS_IN_DATA_FORMAT_1C
SCO_VS_IN_DATA_FORMAT_2C
SCO_VS_IN_DATA_FORMAT_MASK
SCO_VS_IN_DATA_FORMAT_SM
SCO_VS_IN_DATA_FORMAT_US
SCO_VS_IN_SAMPLE_SIZE_8BIT
SCO_VS_IN_SAMPLE_SIZE_16BIT
SCO_VS_IN_SAMPLE_SIZE_MASK
SCO_VS_PCM_BIT_POS_MASK
SCO_VS_SETTING_DEFAULT

Reserved

保留供将来使用。 请勿使用。

RetransmissionEffort

A SCO_RETRANSMISSION_EFFORT 确定通道的重新传输策略的枚举值。

ChannelFlags

指定要打开的通道的要求的标志。 下表列出了有效的标志值:

标记 说明
SCO_CF_LINK_AUTHENTICATED 必须对链接进行身份验证。
SCO_CF_LINK_ENCRYPTED 链接必须加密。 设置此标志还会设置SCO_CF_LINK_AUTHENTICATED标志。
SCO_CF_LINK_SUPPRESS_PIN 配置文件驱动程序指示其首选项,即不会提示用户输入 PIN。

CallbackFlags

一个标志,指定何时应将分配给 回调 成员的函数发送到客户端。 目前只有一个有效标志:

标记 说明
SCO_CALLBACK_DISCONNECT 远程设备断开连接时,应通知配置文件驱动程序。

Callback

由配置文件驱动程序实现的 SCO 回调函数 ,蓝牙驱动程序堆栈应调用该函数,以通知配置文件驱动程序有关 SCO 连接的任何更改。

CallbackContext

要传递给 Callback 成员中指定的 回调函数的上下文。 配置文件驱动程序定义此值。

ReferenceObject

指向要传递给 ObReferenceObjectObDereferenceObject 的对象的指针,该对象的引用计数为 。

ChannelHandle

一个句柄,用于标识 SCO 通道(如果打开的通道请求成功完成)。

Response

一个标志,指示本地服务器是接受还是拒绝传入的 SCO 连接。 仅当生成和发送 BRB_SCO_OPEN_CHANNEL_RESPONSE 请求时,才使用此成员。 下表列出了有效的标志值。

标志 描述
SCO_CONNECT_RSP_RESPONSE_SUCCESS 本地服务器接受 SCO 连接请求。
SCO_CONNECT_RSP_RESPONSE_NO_RESOURCES 由于缺少资源,本地服务器拒绝 SCO 连接请求。
SCO_CONNECT_RSP_RESPONSE_SECURITY_BLOCK 本地服务器拒绝 SCO 连接请求,因为请求不符合安全要求。
SCO_CONNECT_RSP_RESPONSE_BAD_BD_ADDR 本地服务器拒绝 SCO 连接请求,因为它不接受来自指定蓝牙设备地址的连接。

注解

若要打开 SCO 通道,配置文件驱动程序应生成并发送BRB_SCO_OPEN_CHANNEL请求。

如果在请求之前不存在远程设备的异步无连接链接,蓝牙驱动程序堆栈会在创建 SCO 通道之前创建一个。

若要接受或拒绝远程设备发起的传入 SCO 连接请求,配置文件驱动程序应生成并发送 BRB_SCO_OPEN_CHANNEL_RESPONSE 请求。

当蓝牙驱动程序堆栈调用配置文件驱动程序的 SCO 回调函数并在回调函数的 Indication 参数中传递 ScoIndicationRemoteConnect 时,配置文件驱动程序应生成并发送BRB_SCO_OPEN_CHANNEL_RESPONSE请求。

配置文件驱动程序通过在此结构的 Response 成员中存储适当的值来指定是否应接受连接。 在此上下文中,本地系统是服务器。

要求

要求
最低受支持的客户端 版本:Windows Vista 及更高版本中_Supported。
标头 bthddi.h (包括 Bthddi.h)

另请参阅

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

ObDereferenceObject

ObReferenceObject

SCO 回调函数

SCO_RETRANSMISSION_EFFORT