_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
要傳遞至 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) |