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


Метод IWSDDeviceHost::AddDynamicService (wsdhost.h)

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

Синтаксис

HRESULT AddDynamicService(
  [in]           LPCWSTR              pszServiceId,
  [in, optional] LPCWSTR              pszEndpointAddress,
  [in, optional] const WSD_PORT_TYPE  *pPortType,
  [in, optional] const WSDXML_NAME    *pPortName,
  [in, optional] const WSDXML_ELEMENT *pAny,
  [in, optional] IUnknown             *pService
);

Параметры

[in] pszServiceId

Идентификатор динамической службы. Идентификатор службы должен отличаться от всех идентификаторов служб в метаданных узла службы и от любой другой зарегистрированной динамической службы. PszServiceId должен быть универсальным кодом ресурса (URI).

[in, optional] pszEndpointAddress

Необязательный универсальный код ресурса (URI), используемый в качестве адреса конечной точки для этой службы. Если параметр не указан, узел устройства предполагает, что служба должна быть доступна на всех локальных транспортных адресах.

[in, optional] pPortType

Ссылка на структуру WSD_PORT_TYPE , указывающую тип порта. Может иметь значение NULL. Укажите только один из pPortType и pPortName.

[in, optional] pPortName

Ссылка на структуру WSDXML_NAME , указывающую тип службы, с связыванием службы с указанным портом. Укажите только один из pPortType и pPortName.

[in, optional] pAny

Необязательная ссылка на расширяемый раздел, который будет включен в метаданные динамической службы.

[in, optional] pService

Необязательная ссылка на объект службы узла для регистрации.

Возвращаемое значение

Возможные возвращаемые значения включают, помимо прочего, следующие:

Код возврата Описание
S_OK
Метод успешно завершен.
E_POINTER
pszServiceId имеет значение NULL.
E_INVALIDARG
Длина в символах pszServiceId или pszEndpointAddress превышает WSD_MAX_TEXT_LENGTH (8192), или указаны как pPortType, так и pPortName .
E_FAIL
Сбой метода. Возможно, произошел сбой, так как узел не был инициализирован или не удалось найти службу, указанную в pszServiceId . Вызовите init для инициализации узла устройства.
E_OUTOFMEMORY
Недостаточно памяти для завершения операции.

Комментарии

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

Требования

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

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

IWSDDeviceHost