共用方式為


_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_CHANNELBRB_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 之間的小間距可能會導致數據遺失。

如果 BufferBufferMDL 都包含非 NULL 值, 則 BufferMDL 優先。

規格需求

需求
最低支援的用戶端 Windows Vista 和更新版本中的版本:_Supported。
標頭 bthddi.h (包含 Bthddi.h)

另請參閱

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

BRB_SCO_TRANSFER