Communicating with SDP Servers

The Bluetooth driver stack supports the Service Discovery Protocol (SDP). This protocol allows profile drivers to search or browse for services that are offered by Bluetooth devices that are in range of the local radio. SDP uses the Logical Link Control and Adaptation Protocol (L2CAP) as its transport protocol and follows a client-server model.

A service is any entity that can provide information, perform an action, or control a resource on behalf of another entity. A service might be implemented as software, hardware, or a combination of hardware and software. The service record consists entirely of a list of service attributes.

After a L2CAP server profile driver registers itself to accept incoming L2CAP connection requests, it can advertise its services with the SDP protocol by using IOCTL_BTH_SDP_SUBMIT_RECORD or IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO. Each SDP record is submitted as a stream. If the profile driver uses IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO, the profile driver prepends a BTH_SDP_RECORD structure to the raw stream, which contains extra attributes that are not part of the SDP record itself. These include security requirements for a requesting client, publication options for the SDP record, class-of-device (CoD) information, the length of the record, and the record itself.

After the profile driver has advertised its services, other Bluetooth devices can search or browse for these services. For more information about SDP services, see Accessing SDP Service Information.

To stop advertising services with SDP, a profile driver uses IOCTL_BTH_SDP_REMOVE_RECORD.

 

 

Send comments about this topic to Microsoft