_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) |