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
指向要传递给 ObReferenceObject 和 ObDereferenceObject 的对象的指针,该对象的引用计数为 。
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) |