This topic has not yet been rated - Rate this topic

IOCTL_INTERNAL_BTH_SUBMIT_BRB control code

Profile drivers use IOCTL_INTERNAL_BTH_SUBMIT_BRB to submit a Bluetooth Request Block (BRB) to the Bluetooth driver stack from the following list:

BRB_HCI_GET_LOCAL_BD_ADDR

BRB_L2CA_REGISTER_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

Input Parameters

The Parameters.Others.Argument1 member of the IOCTL's IRP points to the address an instance of the structure that corresponds to the BRB that the profile driver intends to issue. The following list describes the structures that correspond to specific BRBs.

Bluetooth Request Block (BRB)Corresponding structure

BRB_HCI_GET_LOCAL_BD_ADDR

_BRB_GET_LOCAL_BD_ADDR

BRB_L2CA_REGISTER_SERVER

_BRB_L2CA_REGISTER_SERVER

BRB_L2CA_UNREGISTER_SERVER

_BRB_L2CA_UNREGISTER_SERVER

BRB_L2CA_OPEN_CHANNEL

_BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE

_BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_CLOSE_CHANNEL

_BRB_L2CA_CLOSE_CHANNEL

BRB_L2CA_ACL_TRANSFER

_BRB_L2CA_ACL_TRANSFER

BRB_L2CA_UPDATE_CHANNEL

_BRB_L2CA_UPDATE_CHANNEL

BRB_L2CA_PING

_BRB_L2CA_PING

BRB_REGISTER_PSM

_BRB_PSM

BRB_UNREGISTER_PSM

_BRB_PSM

BRB_SCO_REGISTER_SERVER

_BRB_SCO_REGISTER_SERVER

BRB_SCO_UNREGISTER_SERVER

_BRB_SCO_UNREGISTER_SERVER

BRB_SCO_OPEN_CHANNEL

_BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

_BRB_SCO_OPEN_CHANNEL

BRB_SCO_CLOSE_CHANNEL

_BRB_SCO_CLOSE_CHANNEL

BRB_SCO_TRANSFER

_BRB_SCO_TRANSFER

BRB_SCO_GET_CHANNEL_INFO

_BRB_SCO_GET_CHANNEL_INFO

BRB_SCO_GET_SYSTEM_INFO

_BRB_SCO_GET_SYSTEM_INFO

BRB_SCO_FLUSH_CHANNEL

_BRB_SCO_FLUSH_CHANNEL

BRB_ACL_GET_MODE

_BRB_ACL_GET_MODE

BRB_ACL_ENTER_ACTIVE_MODE

_BRB_ACL_ENTER_ACTIVE_MODE

BRB_GET_DEVICE_INTERFACE_STRING

_BRB_GET_DEVICE_INTERFACE_STRING

 

Output Parameters

If the BRB returns output, Parameters->Others.Argument1 points to the same BRB that was passed as input. Output is returned in the members of the associated BRB structure or in buffers that are specified in the BRB structure.

I/O Status Block

If the request is successful, the Information member of the STATUS_BLOCK structure is set to the size, in bytes, of the Bluetooth request block that was submitted. Otherwise, the Information member is set to zero.

The Status member is set to one of the values in the following table.

Status valueDescription

STATUS_SUCCESS

The IOCTL completed successfully.

STATUS_INVALID_DEVICE_REQUEST

The request sent to the remote device through the BRB structure was invalid.

STATUS_INVALID_PARAMETER

One or more of the input parameters was invalid.

STATUS_INVALID_BUFFER_SIZE or
STATUS_BUFFER_TOO_SMALL

The length of the supplied buffer was too small.

STATUS_NOT_IMPLEMENTED

The stack has not implemented the necessary module to process the BRB.

STATUS_NOT_SUPPORTED

The stack does not support this BRB.

STATUS_PENDING

The BRB is pending.

 

Remarks

Profile drivers use BRBs to handle most input, output, and connection tasks. A number of BRBs are defined for these tasks, and each one uses a specific, corresponding structure. All BRBs share a common header, which contains the type of the BRB. The Bluetooth driver stack uses the BRB header to correctly interpret the remainder of the BRB. For more information about BRB headers, see the BRB_HEADER structure.

For more information about how profile drivers use BRBs to communicate with the Bluetooth driver stack, see Building and Sending a BRB.

Most BRBs must be called at IRQL = PASSIVE_LEVEL. A few may be called at IRQL <= DISPATCH_LEVEL. The respective IRQL is documented with each BRB.

Requirements

Version

Versions: Supported in Windows Vista, and later.

Header

BthDdi.h (include BthDdi.h)

IRQL

<= PASSIVE_LEVEL

 

 

Send comments about this topic to Microsoft

Build date: 3/26/2012

Did you find this helpful?
(1500 characters remaining)