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


Интерфейс IWSDDeviceHost (wsdhost.h)

Представляет устройство, совместимое с DPWS. Узел устройства объявит о своем присутствии в сети с помощью протокола WS-Discovery. Узел устройства также будет автоматически отвечать на запросы обнаружения и запросы метаданных.

Вызывающий объект может регистрировать пользовательские службы на узле устройства. Эти службы будут доступны в метаданных устройства, а службы будут доступны по сети. Сообщения, привязанные к этим службам, будут автоматически отправляться в объект службы.

Вызовите WSDCreateDeviceHost или WSDCreateDeviceHostAdvanced , чтобы создать объект, предоставляющий этот интерфейс.

Наследование

Интерфейс IWSDDeviceHost наследуется от интерфейса IUnknown . IWSDDeviceHost также имеет следующие типы членов:

Методы

Интерфейс IWSDDeviceHost содержит следующие методы.

 
IWSDDeviceHost::AddDynamicService

Регистрирует объект службы для входящих запросов, но не добавляет службу в метаданные узла устройства. Используется для временных (динамических) служб.
IWSDDeviceHost::Init

Инициализирует экземпляр объекта IWSDDeviceHost.
IWSDDeviceHost::RegisterPortType

Регистрирует тип порта для входящих сообщений.
IWSDDeviceHost::RegisterService

Регистрирует объект службы для входящих запросов и добавляет службу в метаданные узла устройства.
IWSDDeviceHost::RemoveDynamicService

Отменяет регистрацию объекта службы, зарегистрированного с помощью AddDynamicService.
IWSDDeviceHost::RetireService

Отменяет регистрацию объекта службы, зарегистрированного с помощью RegisterService, и удаляет службу из метаданных узла устройства.
IWSDDeviceHost::SetMetadata

Задает метаданные для устройства, за исключением метаданных службы, определяемых пользователем.
IWSDDeviceHost::SetServiceDiscoverable

Определяет, объявляется ли служба с помощью WS-Discovery.
IWSDDeviceHost::SignalEvent

Уведомляет всех подписанных клиентов о том, что произошло событие.
IWSDDeviceHost::Start

Запускает узел устройства и публикует его с помощью сообщения WS-Discovery Hello.
IWSDDeviceHost::Stop

Отправляет сообщение WS-Discovery Bye и останавливает узел.
IWSDDeviceHost::Terminate

Завершает работу узла и освобождает все подключенные службы.

Комментарии

После получения этого интерфейса приложение будет:

  1. Вызовите метод RegisterPortType , чтобы зарегистрировать все необходимые типы портов.
  2. Вызовите SetMetadata , чтобы описать устройство, и при необходимости вызовите RegisterService один или несколько раз для регистрации служб, описанных в метаданных узла службы.
  3. Вызовите метод Start , чтобы запустить узел устройства и опубликовать устройство с помощью WS-Discovery. После запуска узла устройства можно при необходимости:
    1. Вызовите AddDynamicService для служб, не описанных в метаданных узла службы (например, нерегламентированного задания печати).
    2. Вызовите RetireService , чтобы завершить действие в службе, активированной методом RegisterService , и отключить ее.
    3. Вызовите метод SignalEvent , чтобы указать, что уведомления должны отправляться для подписок, связанных с определенным событием.
  4. Вызовите метод Stop , чтобы завершить выполнение узла и завершить публикацию устройства.

Объект IWSDDeviceHost может предоставить объект для службы по запросу (с помощью обратного вызова уведомления) при вызове узла получает сообщение запроса, направленное на соответствующую службу.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header wsdhost.h (включая Wsdapi.h)

См. также раздел

Обзор интерфейсов WSDAPI