_BRB_SCO_TRANSFER 結構 (bthddi.h)
_BRB_SCO_TRANSFER結構描述讀取等時序數據的緩衝區,或將等時序數據寫入至 SCO 通道。
語法
struct _BRB_SCO_TRANSFER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
SCO_CHANNEL_HANDLE ChannelHandle;
ULONG TransferFlags;
ULONG BufferSize;
PVOID Buffer;
PMDL BufferMDL;
ULONGLONG DataTag;
};
成員
Hdr
包含目前 BRB 相關信息 的BRB_HEADER 結構。
BtAddress
遠端裝置的藍牙位址。
ChannelHandle
藍牙驅動程式堆疊所傳回的 SCO 通道句柄,以回應先前 BRB_SCO_OPEN_CHANNEL 或 BRB_SCO_OPEN_CHANNEL_RESPONSE 要求。
TransferFlags
指定 BRB 基本行為的旗標。 下表列出有效的旗標值。
旗標 | 描述 |
---|---|
SCO_TRANSFER_DIRECTION_IN | 如果設定此位,BRB 會透過 SCO 通道從遠端裝置讀取時序數據。 |
SCO_TRANSFER_DIRECTION_OUT | 如果設定此位,BRB 會透過 SCO 通道將等時序數據寫入遠端裝置。 |
BufferSize
這個 結構的 Buffer 成員所描述之輸入緩衝區的大小,以位元組為單位。
Buffer
輸入緩衝區的指標。 當未使用 Buffer 成員時,這個值應該是 NULL。
BufferMDL
MDL 輸入緩衝區的指標。 當未使用 BufferMDL 成員時,這個值應該是 NULL。
DataTag
SCO 寫入
備註
若要讀取非時序數據,或將數據寫入至 SCO 連線,配置檔驅動程式應該建置並傳送BRB_SCO_TRANSFER要求。
每個 SCO 連線都是雙向的,而且可以同時讀取和寫入。
讀取 BRB 會保持擱置中,直到數據送達或配置檔驅動程式排清它們為止。 建議高階驅動程式隨時開啟至少兩個擱置的讀取 BRB,以接受來自遠端裝置的連入數據。
藍牙驅動程式堆疊不會為傳入的不時數據提供任何緩衝。 因此,完成一個讀取 IRP 和下一個讀取 IRP 之間的小間距可能會導致數據遺失。
如果 Buffer 和 BufferMDL 都包含非 NULL 值, 則 BufferMDL 優先。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista 和更新版本中的版本:_Supported。 |
標頭 | bthddi.h (包含 Bthddi.h) |