_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
A SCO_RETRANSMISSION_EFFORT 列舉值,決定通道的重新傳輸原則。
ChannelFlags
旗標,指定要開啟之通道的需求。 下表列出有效的旗標值:
國旗 | 描述 |
SCO_CF_LINK_AUTHENTICATED | 必須驗證連結。 |
SCO_CF_LINK_ENCRYPTED | 鏈接必須經過加密。 設定此旗標也會設定SCO_CF_LINK_AUTHENTICATED旗標。 |
SCO_CF_LINK_SUPPRESS_PIN | 配置文件驅動程式指出其喜好設定,指出使用者未提示輸入 PIN。 |
CallbackFlags
旗標,指定何時應該將指派給 Callback 成員的函式傳送給用戶端。 目前只有一個有效的旗標:
國旗 | 描述 |
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 回呼函式,並在回呼函式的指示參數中傳遞 ScoIndicationRemoteConnect 時,配置檔驅動程式應該建置並傳送BRB_SCO_OPEN_CHANNEL_RESPONSE要求。
配置文件驅動程式會指定是否應該接受連線,方法是將此結構的 Response 成員儲存適當的值。 在此內容中,本機系統是伺服器。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本中的版本:_Supported。 |
標頭 | bthddi.h (包含 Bthddi.h) |