Общие сведения о взаимодействии с серверами SDP
Стек драйверов Bluetooth поддерживает протокол обнаружения служб (SDP). Этот протокол позволяет драйверам профилей искать или искать службы, предлагаемые устройствами Bluetooth, которые находятся в диапазоне действия локального радио. SDP использует протокол управления логическими соединениями и адаптации (L2CAP) в качестве транспортного протокола и следует модели клиент-сервер.
Служба — это любая сущность, которая может предоставлять сведения, выполнять действия или управлять ресурсом от имени другой сущности. Служба может быть реализована как программное обеспечение, оборудование или сочетание оборудования и программного обеспечения. Запись службы полностью состоит из списка атрибутов службы.
После того как драйвер профиля сервера L2CAP регистрируется для приема входящих запросов на подключение L2CAP, он может объявлять свои службы по протоколу SDP с помощью IOCTL_BTH_SDP_SUBMIT_RECORD или IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO. Каждая запись SDP отправляется в виде потока. Если драйвер профиля использует IOCTL_BTH_SDP_SUBMIT_RECORD_WITH_INFO, драйвер профиля добавляет структуру BTH_SDP_RECORD к необработанному потоку, который содержит дополнительные атрибуты, не являющиеся частью самой записи SDP. К ним относятся требования к безопасности для запрашивающего клиента, параметры публикации для записи SDP, сведения о классе устройства (COD), длина записи и сама запись.
После объявления драйвером профиля своих служб другие устройства Bluetooth могут выполнять поиск или поиск этих служб. Дополнительные сведения о службах SDP см. в статье Доступ к сведениям о службе SDP.
Чтобы остановить рекламу служб с помощью SDP, драйвер профиля использует IOCTL_BTH_SDP_REMOVE_RECORD.