Funzione WSDCreateDeviceHostAdvanced (wsdhost.h)
Crea un host del dispositivo e restituisce un puntatore all'interfaccia IWSDDeviceHost .
Sintassi
HRESULT WSDCreateDeviceHostAdvanced(
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[in] IWSDAddress **ppHostAddresses,
[in] DWORD dwHostAddressCount,
[out] IWSDDeviceHost **ppDeviceHost
);
Parametri
[in] pszLocalId
Indirizzo logico o fisico del dispositivo. Un indirizzo logico è nel formato urn:uuid:{guid}
. Se pszLocalId è un indirizzo logico, l'host annuncia l'indirizzo logico e quindi converte l'indirizzo in un indirizzo fisico quando riceve i messaggi Resolve o Probe.
Se pszLocalId è un indirizzo fisico (ad esempio, l'URL preceduto da http o https), l'host userà l'indirizzo come indirizzo fisico e ospiterà in tale indirizzo anziché quello predefinito.
Per la comunicazione sicura, pszLocalId deve essere un URL preceduto da https e l'host userà il protocollo SSL/TLS sulla porta specificata nell'URL. La porta consigliata è la porta 5358, perché questa porta è riservata alle connessioni sicure con WSDAPI. Se non viene specificata alcuna porta, l'host userà la porta 443. La porta host deve essere configurata con un certificato server SSL prima di chiamare WSDCreateDeviceHostAdvanced. Per altre informazioni sulla configurazione delle porte host, vedere HttpSetServiceConfiguration.
Se pszLocalId o l'indirizzo di trasporto a cui fa riferimento ppHostAddresses è un URL preceduto da https, entrambi gli URL devono essere identici. In caso contrario, WSDCreateDeviceHostAdvanced restituirà E_INVALIDARG.
Qualsiasi URL (http o https) deve essere terminato con una barra finale. L'URL deve contenere un indirizzo IP o un nome host valido.
L'elenco seguente mostra alcuni valori di esempio per pszLocalId. Non è un elenco completo di valori validi.
- 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
Interfaccia IWSDXMLContext che definisce tipi di messaggi o spazi dei nomi personalizzati.
Se NULL, viene utilizzato un contesto predefinito che rappresenta i tipi di messaggio e gli spazi dei nomi predefiniti.
[in] ppHostAddresses
Singola interfaccia IWSDAddress o interfaccia IWSDTransportAddress . Gli oggetti forniscono informazioni su indirizzi specifici su cui l'host deve essere in ascolto.
Se pszLocalId contiene un indirizzo logico, il comportamento risultante è un mapping tra l'indirizzo logico e un set specifico di indirizzi fisici (anziché un mapping tra l'indirizzo logico e un indirizzo fisico predefinito).
[in] dwHostAddressCount
Numero di elementi nella matrice ppHostAddresses . Se ppHostAddresses è un'interfaccia IWSDAddress , count deve essere 1.
[out] ppDeviceHost
Puntatore all'interfaccia IWSDDeviceHost usata per esporre la semantica del dispositivo specifica WSD associata a un server che risponde alle richieste in ingresso.
Valore restituito
I valori restituiti possibili includono, ma non sono limitati ai seguenti:
Codice restituito | Descrizione |
---|---|
|
Il metodo è stato completato correttamente. |
|
pszLocalId è NULL, la lunghezza in caratteri di pszLocalId supera WSD_MAX_TEXT_LENGTH (8192) o pszLocalId punta a un URL preceduto da https e tale URL non corrisponde all'URL dell'indirizzo di trasporto a cui fa riferimento ppHostAddresses. |
|
ppDeviceHost è NULL. |
|
Memoria insufficiente per completare l'operazione. |
Commenti
La funzione WSDCreateDeviceHostAdvanced chiama il metodo IWSDDeviceHost::Init , che inizializza un'istanza di un oggetto IWSDDeviceHost .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wsdhost.h (include Wsdapi.h) |
Libreria | Wsdapi.lib |
DLL | Wsdapi.dll |