IOCTL_INTERNAL_BTH_SUBMIT_BRB IOCTL (bthioctl.h)
配置文件驱动程序使用 IOCTL_INTERNAL_BTH_SUBMIT_BRB 将蓝牙请求块 (BRB) 提交到蓝牙驱动程序堆栈。
主要代码
IRP_MJ_INTERNAL_DEVICE_CONTROL
输入缓冲区
Parameters.Others.Argument1 成员指向与配置文件驱动程序要颁发的 BRB 相对应的结构的实例的地址。 以下列表描述了与特定 BRB 对应的结构。
蓝牙请求块 (BRB) | 相应的结构 |
---|---|
BRB_HCI_GET_LOCAL_BD_ADDR | |
BRB_L2CA_REGISTER_SERVER | |
BRB_L2CA_UNREGISTER_SERVER | _BRB_L2CA_UNREGISTER_SERVER |
BRB_L2CA_OPEN_CHANNEL | |
BRB_L2CA_OPEN_CHANNEL_RESPONSE | |
BRB_L2CA_CLOSE_CHANNEL | |
BRB_L2CA_ACL_TRANSFER | |
BRB_L2CA_UPDATE_CHANNEL | |
BRB_L2CA_PING | |
BRB_REGISTER_PSM | |
BRB_UNREGISTER_PSM | |
BRB_SCO_REGISTER_SERVER | |
BRB_SCO_UNREGISTER_SERVER | |
BRB_SCO_OPEN_CHANNEL | |
BRB_SCO_OPEN_CHANNEL_RESPONSE | |
BRB_SCO_CLOSE_CHANNEL | |
BRB_SCO_TRANSFER | |
BRB_SCO_GET_CHANNEL_INFO | |
BRB_SCO_GET_SYSTEM_INFO | |
BRB_SCO_FLUSH_CHANNEL | |
BRB_ACL_GET_MODE | |
BRB_ACL_ENTER_ACTIVE_MODE | |
BRB_GET_DEVICE_INTERFACE_STRING | _BRB_GET_DEVICE_INTERFACE_STRING |
输入缓冲区长度
结构的长度。
输出缓冲区
如果 BRB 返回输出,则 Parameters-Others.Argument1> 指向作为输入传递的同一 BRB。 输出在关联的 BRB 结构的成员或 BRB 结构中指定的缓冲区中返回。
输出缓冲区长度
结构的长度
状态块
如果请求成功,则 STATUS_BLOCK 结构的 Information 成员将设置为提交的蓝牙请求块的大小(以字节为单位)。 否则, 信息 成员设置为零。
Status 成员设置为下表中的值之一。
状态值 | 说明 |
---|---|
STATUS_SUCCESS | IOCTL 已成功完成。 |
STATUS_INVALID_DEVICE_REQUEST | 通过 BRB 结构发送到远程设备的请求无效。 |
STATUS_INVALID_PARAMETER | 一个或多个输入参数无效。 |
|
提供的缓冲区的长度太小。 |
STATUS_NOT_IMPLEMENTED | 堆栈尚未实现处理 BRB 所需的模块。 |
STATUS_NOT_SUPPORTED | 堆栈不支持此 BRB。 |
STATUS_PENDING | BRB 处于挂起状态。 |
注解
配置文件驱动程序使用 BRB 来处理大多数输入、输出和连接任务。 为这些任务定义了多个 BRB,每个都使用特定的相应结构。 所有 BRB 共享一个公共标头,其中包含 BRB 的类型。 蓝牙驱动程序堆栈使用 BRB 标头正确解释 BRB 的其余部分。 有关 BRB 标头的详细信息,请参阅 BRB_HEADER 结构。
有关配置文件驱动程序如何使用 BRB 与蓝牙驱动程序堆栈通信的详细信息,请参阅 生成和发送 BRB。
必须在 IRQL <= PASSIVE_LEVEL 调用这些 BR。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 版本:Windows Vista 及更高版本中的 _Supported。 |
标头 | bthioctl.h (包括 BthIoctl.h) |
IRQL | <= PASSIVE_LEVEL |