_BRB_SCO_OPEN_CHANNEL结构(bthddi.h)

_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 保留以供将来使用。
要0xFFFE的0x0004 通道的可能 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

一个 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 回调函数 时,配置文件驱动程序应生成并发送 BRB_SCO_OPEN_CHANNEL_RESPONSE 请求,并在回调函数的 指示 参数中传递 ScoIndicationRemoteConnect

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

要求

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

另请参阅

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

ObDereferenceObject

ObReferenceObject

SCO 回调函数

SCO_RETRANSMISSION_EFFORT