Compartir a través de


Función WSDCreateDeviceHostAdvanced (wsdhost.h)

Crea un host de dispositivo y devuelve un puntero a la interfaz IWSDDeviceHost .

Sintaxis

HRESULT WSDCreateDeviceHostAdvanced(
  [in]  LPCWSTR        pszLocalId,
  [in]  IWSDXMLContext *pContext,
  [in]  IWSDAddress    **ppHostAddresses,
  [in]  DWORD          dwHostAddressCount,
  [out] IWSDDeviceHost **ppDeviceHost
);

Parámetros

[in] pszLocalId

Dirección lógica o física del dispositivo. Una dirección lógica tiene el formato urn:uuid:{guid}. Si pszLocalId es una dirección lógica, el host anunciará la dirección lógica y, a continuación, convertirá la dirección en una dirección física cuando reciba mensajes resolve o Probe.

Si pszLocalId es una dirección física (como la dirección URL prefijo por http o https), el host usará la dirección como dirección física y hospedará en esa dirección en lugar de la predeterminada.

Para la comunicación segura, pszLocalId debe ser una dirección URL prefijo por https y el host usará el protocolo SSL/TLS en el puerto especificado en la dirección URL. El puerto recomendado es el puerto 5358, ya que este puerto está reservado para conexiones seguras con WSDAPI. Si no se especifica ningún puerto, el host usará el puerto 443. El puerto host debe configurarse con un certificado de servidor SSL antes de llamar a WSDCreateDeviceHostAdvanced. Para obtener más información sobre la configuración de puertos de host, vea HttpSetServiceConfiguration.

Si pszLocalId o la dirección de transporte a la que hace referencia ppHostAddresses es una dirección URL prefijo por https, ambas direcciones URL deben ser idénticas. Si no es así, WSDCreateDeviceHostAdvanced devolverá E_INVALIDARG.

Cualquier dirección URL (http o https) debe terminarse con una barra diagonal final. La dirección URL debe contener una dirección IP o un nombre de host válidos.

En la lista siguiente se muestran algunos valores de ejemplo para pszLocalId. No es una lista completa de valores válidos.

  • http://192.168.0.1:5357/
  • http://localhost/
  • http://myHostname:5357/
  • https://192.168.0.1:5358/
  • https://myHostname/
  • https://myHostname/myDevice/
  • https://myHostname:5358/

[in] pContext

Interfaz IWSDXMLContext que define tipos de mensajes personalizados o espacios de nombres.

Si es NULL, se usa un contexto predeterminado que representa los tipos de mensajes integrados y los espacios de nombres.

[in] ppHostAddresses

Una única interfaz IWSDAddress o interfaz IWSDTransportAddress . Los objetos proporcionan información sobre direcciones específicas en las que el host debe escuchar.

Si pszLocalId contiene una dirección lógica, el comportamiento resultante es una asignación entre la dirección lógica y un conjunto específico de direcciones físicas (en lugar de una asignación entre la dirección lógica y una dirección física predeterminada).

[in] dwHostAddressCount

Número de elementos de la matriz ppHostAddresses . Si ppHostAddresses es una interfaz IWSDAddress , el recuento debe ser 1.

[out] ppDeviceHost

Puntero a la interfaz IWSDDeviceHost que se usa para exponer la semántica de dispositivo específica de WSD asociada a un servidor que responde a las solicitudes entrantes.

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_INVALIDARG
pszLocalId es NULL, la longitud de caracteres de pszLocalId supera WSD_MAX_TEXT_LENGTH (8192) o pszLocalId apunta a una dirección URL prefijo por https y esa dirección URL no coincide con la dirección URL de la dirección de transporte a la que hace referencia ppHostAddresses.
E_POINTER
ppDeviceHost es NULL.
E_OUTOFMEMORY
Memoria insuficiente para completar la operación.

Comentarios

La función WSDCreateDeviceHostAdvanced llama al método IWSDDeviceHost::Init , que inicializa una instancia de un objeto IWSDDeviceHost .

Requisitos

Requisito Value
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)
Library Wsdapi.lib
Archivo DLL Wsdapi.dll

Consulte también

WSDCreateDeviceHost