_BRB_SCO_REGISTER_SERVER structure (bthddi.h)

A profile driver uses the _BRB_SCO_REGISTER_SERVER structure to register itself as a server capable of receiving SCO connections from remote Bluetooth devices.

Syntax

struct _BRB_SCO_REGISTER_SERVER {
  BRB_HEADER                 Hdr;
  BTH_ADDR                   BtAddress;
  ULONG                      Reserved;
  ULONG                      IndicationFlags;
  PFNSCO_INDICATION_CALLBACK IndicationCallback;
  PVOID                      IndicationCallbackContext;
  PVOID                      ReferenceObject;
  SCO_SERVER_HANDLE          ServerHandle;
};

Members

Hdr

A BRB_HEADER structure that contains information about the current BRB.

BtAddress

The address of the remote Bluetooth device for which to receive notifications.

Reserved

Reserved for future use. Do not use.

IndicationFlags

A flag that indicates when the callback function that is specified in the IndicationCallback member should be called. The following flags are defined.

Flag Description
SCO_INDICATION_SCO_REQUEST Notify the profile driver if there are any incoming SCO connections.
SCO_INDICATION_ESCO_REQUEST Notify the profile driver if there are any incoming eSCO connections.

IndicationCallback

A SCO Callback Function, implemented by the profile driver, that the Bluetooth driver stack should call to notify the profile driver about incoming SCO connections.

IndicationCallbackContext

The context passed to the function that is defined in the IndicationCallback member.

ReferenceObject

A pointer to an object to pass to the ObReferenceObject and ObDereferenceObject functions to maintain a reference count of. Profile drivers should provide this object in such a way that the Bluetooth driver stack can increase the count of the object for as long as the driver stack can call the callback function specified in the IndicationCallback member. The Bluetooth driver stack will decrease the reference count of the object when the profile driver builds and sends a BRB_SCO_UNREGISTER_SERVER request.

ServerHandle

Handle to the SCO server, if successfully returned. When the profile driver should no longer receive remote connect indications it should pass this handle to BRB_SCO_UNREGISTER_SERVER.

Remarks

To register itself as a SCO server, a profile driver should build and send a BRB_SCO_REGISTER_SERVER request.

If successful, the Bluetooth driver stack can then notify the profile driver when remote devices attempt to create a SCO connection to the profile driver.

After the profile driver has registered itself, the Bluetooth driver stack can notify it when a remote device attempts to connect to it by calling the SCO Callback Function that the profile driver implements and specifies in the IndicationCallback member.

When the profile driver receives notification of a connection attempt, it should build and send a BRB_SCO_OPEN_CHANNEL_RESPONSE request to either accept or reject the connection attempt. For more information about accepting or rejecting SCO connection attempts, see the _BRB_SCO_OPEN_CHANNEL structure.

After a connection is established, the profile driver can issue other BRBs to communicate with the remote device.

To stop receiving remote connection notifications, a profile driver should build and send a BRB_SCO_UNREGISTER_SERVER request.

Requirements

Requirement Value
Minimum supported client Versions:_Supported in Windows Vista, and later.
Header bthddi.h (include Bthddi.h)

See also

BRB_HEADER

BRB_SCO_REGISTER_SERVER

BRB_SCO_UNREGISTER_SERVER

ObDereferenceObject

ObReferenceObject

SCO Callback Function