Compartir a través de


Método IWSDDeviceHost::AddDynamicService (wsdhost.h)

Registra un objeto de servicio para las solicitudes entrantes, pero no agrega el servicio a los metadatos del host del dispositivo. Se usa para los servicios transitorios (dinámicos).

Sintaxis

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
);

Parámetros

[in] pszServiceId

Identificador del servicio dinámico. El identificador de servicio debe ser distinto de todos los identificadores de servicio de los metadatos del host de servicio y de cualquier otro servicio dinámico registrado. PszServiceId debe ser un URI.

[in, optional] pszEndpointAddress

Un URI opcional que se usará como dirección del punto de conexión para este servicio. Si no se especifica ninguno, el host del dispositivo asume que el servicio debe estar disponible en todas las direcciones de transporte locales.

[in, optional] pPortType

Referencia a una estructura de WSD_PORT_TYPE que especifica el tipo de puerto. Puede ser NULL. Especifique solo uno de pPortType y pPortName.

[in, optional] pPortName

Referencia a una estructura de WSDXML_NAME que especifica el tipo del servicio, con la asociación del servicio con un puerto especificado. Especifique solo uno de pPortType y pPortName.

[in, optional] pAny

Referencia opcional a una sección extensible que se incluirá en los metadatos del servicio dinámico.

[in, optional] pService

Referencia opcional a un objeto de servicio de host que se va a registrar.

Valor devuelto

Entre los valores devueltos posibles se incluyen, entre otros, los siguientes:

Código devuelto Descripción
S_OK
El método se completó correctamente.
E_POINTER
pszServiceId es NULL.
E_INVALIDARG
La longitud de caracteres de pszServiceId o pszEndpointAddress supera WSD_MAX_TEXT_LENGTH (8192), o se especifican pPortType y pPortName .
E_FAIL
Error en el método. Es posible que se haya producido un error porque no se ha inicializado el host o no se encontró el servicio especificado por pszServiceId . Llame a Init para inicializar un host de dispositivo.
E_OUTOFMEMORY
Memoria insuficiente para completar la operación.

Observaciones

Cuando se llama a este método, el dispositivo agrega una referencia al objeto de servicio y llama a sus métodos en respuesta a los mensajes de solicitud dirigidos al servicio. Llame al método RemoveDynamicService en el host del dispositivo para liberar su referencia al servicio y detenga la llamada a métodos en el servicio.

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wsdhost.h (incluya Wsdapi.h)
Archivo DLL Wsdapi.dll

Consulte también

IWSDDeviceHost