_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

蓝牙驱动程序堆栈为响应早期 BRB_SCO_OPEN_CHANNELBRB_SCO_OPEN_CHANNEL_RESPONSE 请求而返回的 SCO 通道句柄。

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 将保持挂起状态,直到数据到达或配置文件驱动程序刷新它们为止。 建议高级驱动程序随时至少打开两个挂起的读取 BR,以接受来自远程设备的传入数据。

蓝牙驱动程序堆栈不会为传入的时序数据提供任何缓冲。 因此,完成一个读取 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