Поделиться через


Создание записей SDP

Драйверы профилей, объявляющие свои службы, могут создавать иерархии дерева обнаружения служб (SDP) с нуля, а затем преобразовывать их в поток записей SDP. Драйвер профиля должен сначала вызвать функцию SdpCreateNodeTree. Функция sdpCreateNodeTree возвращает выделенную и пустую структуруSDP_TREE_ROOT_NODE, которую драйвер профиля может заполнить с помощью следующих функций:

После завершения сборки записи SDP на основе дерева драйвер профиля вызывает функцию SdpConvertTreeToStream для создания версии записи SDP в виде потока необработанных байтов. Запись SDP в этой форме готова для публикации драйвером профиля на локальном сервере SDP. Этот процесс может быть удобнее для использования драйверов профилей, чем создание записи SDP в виде потока.

Функция SdpConvertTreeToStream выделяет необходимую память для хранения потоковой версии записи SDP. Если драйвер профиля больше не требует записи SDP, он должен освободить память с помощью ExFreePool.

Кроме того, если драйвер профиля больше не нуждается в древовидной версии записи SDP, он должен вызывать SdpFreeTree, чтобы освободить память, выделенную связанной структурой SDP_TREE_ROOT_NODE.

Драйверы профилей могут получить указатель на все функции, рассмотренные в этом разделе, запрашивая интерфейсы BTHDDI_SDP_PARSE_INTERFACE и BTHDDI_SDP_NODE_INTERFACE. Дополнительные сведения о запросах к интерфейсам Bluetooth см. в разделе "Запрос интерфейсов Bluetooth".