Função WSDCreateDeviceHostAdvanced (wsdhost.h)
Cria um host de dispositivo e retorna um ponteiro para a interface IWSDDeviceHost .
Sintaxe
HRESULT WSDCreateDeviceHostAdvanced(
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[in] IWSDAddress **ppHostAddresses,
[in] DWORD dwHostAddressCount,
[out] IWSDDeviceHost **ppDeviceHost
);
Parâmetros
[in] pszLocalId
O endereço lógico ou físico do dispositivo. Um endereço lógico é do formulário urn:uuid:{guid}
. Se pszLocalId for um endereço lógico, o host anunciará o endereço lógico e converterá o endereço em um endereço físico quando receber mensagens Resolver ou Sondar.
Se pszLocalId for um endereço físico (como URL prefixada por http ou https), o host usará o endereço como o endereço físico e será hospedado nesse endereço em vez do padrão.
Para comunicação segura, pszLocalId deve ser uma URL prefixada por https e o host usará o protocolo SSL/TLS na porta especificada na URL. A porta recomendada é a porta 5358, pois essa porta é reservada para conexões seguras com o WSDAPI. Se nenhuma porta for especificada, o host usará a porta 443. A porta host deve ser configurada com um certificado de servidor SSL antes de chamar WSDCreateDeviceHostAdvanced. Para obter mais informações sobre a configuração de portas de host, consulte HttpSetServiceConfiguration.
Se pszLocalId ou o endereço de transporte referenciado por ppHostAddresses for uma URL prefixada por https, ambas as URLs deverão ser idênticas. Se esse não for o caso, WSDCreateDeviceHostAdvanced retornará E_INVALIDARG.
Qualquer URL (http ou https) deve ser encerrada com uma barra à direita. A URL deve conter um endereço IP ou nome do host válido.
A lista a seguir mostra alguns valores de exemplo para pszLocalId. Não é uma 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
Uma interface IWSDXMLContext que define tipos de mensagem ou namespaces personalizados.
Se NULL, um contexto padrão que representa os tipos de mensagens internos e namespaces será usado.
[in] ppHostAddresses
Uma única interface IWSDAddress ou interface IWSDTransportAddress . Os objetos fornecem informações sobre endereços específicos nos quais o host deve escutar.
Se pszLocalId contiver um endereço lógico, o comportamento resultante será um mapeamento entre o endereço lógico e um conjunto específico de endereços físicos (em vez de um mapeamento entre o endereço lógico e um endereço físico padrão).
[in] dwHostAddressCount
O número de itens na matriz ppHostAddresses . Se ppHostAddresses for uma interface IWSDAddress , count deverá ser 1.
[out] ppDeviceHost
Ponteiro para a interface IWSDDeviceHost que você usa para expor a semântica de dispositivo específica do WSD associada a um servidor que responde a solicitações de entrada.
Retornar valor
Os possíveis valores retornados incluem, mas não se limitam a, o seguinte:
Código de retorno | Descrição |
---|---|
|
Método concluído com êxito. |
|
pszLocalId é NULL, o comprimento em caracteres de pszLocalId excede WSD_MAX_TEXT_LENGTH (8192) ou pszLocalId aponta para uma URL prefixada por https e essa URL não corresponde à URL do endereço de transporte referenciado por ppHostAddresses. |
|
ppDeviceHost é NULL. |
|
Memória insuficiente para concluir a operação. |
Comentários
A função WSDCreateDeviceHostAdvanced chama o método IWSDDeviceHost::Init , que inicializa uma instância de um objeto IWSDDeviceHost .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | wsdhost.h (inclua Wsdapi.h) |
Biblioteca | Wsdapi.lib |
DLL | Wsdapi.dll |