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 结构的成员设置为已提交的蓝牙请求块的大小(以字节为单位)。 否则,信息 成员设置为零。
Status 成员设置为下表中的值之一。
状态值 | 描述 |
---|---|
STATUS_SUCCESS | IOCTL 已成功完成。 |
STATUS_INVALID_DEVICE_REQUEST | 通过 BRB 结构发送到远程设备的请求无效。 |
STATUS_INVALID_PARAMETER | 一个或多个输入参数无效。 |
|
提供的缓冲区的长度太小。 |
STATUS_NOT_IMPLEMENTED | 堆栈尚未实现处理 BRB 所需的模块。 |
STATUS_NOT_SUPPORTED | 堆栈不支持此 BRB。 |
STATUS_PENDING | BRB 处于挂起状态。 |
言论
配置文件驱动程序使用 BR 来处理大多数输入、输出和连接任务。 为这些任务定义了许多 BRB,每个 BLOB 都使用特定的相应结构。 所有 BRB 共享一个公共标头,其中包含 BRB 的类型。 蓝牙驱动程序堆栈使用 BRB 标头正确解释 BRB 的其余部分。 有关 BRB 标头的详细信息,请参阅 BRB_HEADER 结构。
若要详细了解配置文件驱动程序如何使用 BRB 与蓝牙驱动程序堆栈通信,请参阅 生成和发送 BRB。
必须在 IRQL <= PASSIVE_LEVEL 调用这些 BRB。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 及更高版本中的版本:_Supported。 |
标头 | bthioctl.h (include BthIoctl.h) |
IRQL | <= PASSIVE_LEVEL |