WSDCreateDeviceHostAdvanced, fonction (wsdhost.h)
Crée un hôte d’appareil et retourne un pointeur vers l’interface IWSDDeviceHost .
Syntaxe
HRESULT WSDCreateDeviceHostAdvanced(
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[in] IWSDAddress **ppHostAddresses,
[in] DWORD dwHostAddressCount,
[out] IWSDDeviceHost **ppDeviceHost
);
Paramètres
[in] pszLocalId
Adresse logique ou physique de l’appareil. Une adresse logique est de la forme urn:uuid:{guid}
. Si pszLocalId est une adresse logique, l’hôte annonce l’adresse logique, puis convertit l’adresse en adresse physique lorsqu’il reçoit des messages Resolve ou Probe.
Si pszLocalId est une adresse physique (telle que l’URL préfixée par http ou https), l’hôte utilise l’adresse comme adresse physique et hébergera sur cette adresse au lieu de l’adresse par défaut.
Pour une communication sécurisée, pszLocalId doit être une URL précédée par https, et l’hôte utilisera le protocole SSL/TLS sur le port spécifié dans l’URL. Le port recommandé est le port 5358, car ce port est réservé aux connexions sécurisées avec WSDAPI. Si aucun port n’est spécifié, l’hôte utilisera le port 443. Le port hôte doit être configuré avec un certificat de serveur SSL avant d’appeler WSDCreateDeviceHostAdvanced. Pour plus d’informations sur la configuration des ports hôtes, consultez HttpSetServiceConfiguration.
Si pszLocalId ou l’adresse de transport référencée par ppHostAddresses est une URL préfixée par https, les deux URL doivent être identiques. Si ce n’est pas le cas, WSDCreateDeviceHostAdvanced retourne E_INVALIDARG.
Toute URL (http ou https) doit être terminée par une barre oblique de fin. L’URL doit contenir une adresse IP ou un nom d’hôte valide.
La liste suivante montre quelques exemples de valeurs pour pszLocalId. Il ne s’agit pas d’une liste complète de valeurs valides.
- 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
Interface IWSDXMLContext qui définit des types de messages ou des espaces de noms personnalisés.
Si la valeur est NULL, un contexte par défaut représentant les espaces de noms et les types de messages intégrés est utilisé.
[in] ppHostAddresses
Interface IWSDAddress unique ou interface IWSDTransportAddress . Les objets fournissent des informations sur des adresses spécifiques que l’hôte doit écouter.
Si pszLocalId contient une adresse logique, le comportement résultant est un mappage entre l’adresse logique et un ensemble spécifique d’adresses physiques (au lieu d’un mappage entre l’adresse logique et une adresse physique par défaut).
[in] dwHostAddressCount
Nombre d’éléments dans le tableau ppHostAddresses . Si ppHostAddresses est une interface IWSDAddress , le nombre doit être de 1.
[out] ppDeviceHost
Pointeur vers l’interface IWSDDeviceHost que vous utilisez pour exposer la sémantique d’appareil spécifique au WSD associée à un serveur qui répond aux demandes entrantes.
Valeur retournée
Les valeurs de retour possibles incluent, sans s’y limiter, les éléments suivants :
Code de retour | Description |
---|---|
|
Méthode terminée avec succès. |
|
pszLocalId a la valeur NULL, la longueur en caractères de pszLocalId dépasse WSD_MAX_TEXT_LENGTH (8192), ou pszLocalId pointe vers une URL précédée par https et cette URL ne correspond pas à l’URL de l’adresse de transport référencée par ppHostAddresses. |
|
ppDeviceHost a la valeur NULL. |
|
Mémoire insuffisante pour terminer l’opération. |
Remarques
La fonction WSDCreateDeviceHostAdvanced appelle la méthode IWSDDeviceHost ::Init, qui initialise un instance d’un objet IWSDDeviceHost.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wsdhost.h (inclure Wsdapi.h) |
Bibliothèque | Wsdapi.lib |
DLL | Wsdapi.dll |