WSDCreateDeviceHostAdvanced-Funktion (wsdhost.h)
Erstellt einen Gerätehost und gibt einen Zeiger auf die IWSDDeviceHost-Schnittstelle zurück.
Syntax
HRESULT WSDCreateDeviceHostAdvanced(
[in] LPCWSTR pszLocalId,
[in] IWSDXMLContext *pContext,
[in] IWSDAddress **ppHostAddresses,
[in] DWORD dwHostAddressCount,
[out] IWSDDeviceHost **ppDeviceHost
);
Parameter
[in] pszLocalId
Die logische oder physische Adresse des Geräts. Eine logische Adresse hat das Format urn:uuid:{guid}
. Wenn pszLocalId eine logische Adresse ist, gibt der Host die logische Adresse an und konvertiert die Adresse dann in eine physische Adresse, wenn er Resolve- oder Testnachrichten empfängt.
Wenn pszLocalId eine physische Adresse ist (z. B. url mit dem Präfix http oder https), verwendet der Host die Adresse als physische Adresse und hostet diese Adresse anstelle der Standardadresse.
Für eine sichere Kommunikation muss pszLocalId eine URL mit dem Präfix https sein, und der Host verwendet das SSL/TLS-Protokoll an dem in der URL angegebenen Port. Der empfohlene Port ist Port 5358, da dieser Port für sichere Verbindungen mit WSDAPI reserviert ist. Wenn kein Port angegeben ist, verwendet der Host Port 443. Der Hostport muss mit einem SSL-Serverzertifikat konfiguriert werden, bevor WSDCreateDeviceHostAdvanced aufgerufen wird. Weitere Informationen zur Konfiguration von Hostports finden Sie unter HttpSetServiceConfiguration.
Wenn entweder pszLocalId oder die Transportadresse, auf die von ppHostAddresses verwiesen wird, eine URL mit dem Präfix https ist, müssen beide URLs identisch sein. Ist dies nicht der Fall, gibt WSDCreateDeviceHostAdvanced E_INVALIDARG zurück.
Jede URL (http oder https) muss mit einem nachfolgenden Schrägstrich beendet werden. Die URL muss eine gültige IP-Adresse oder einen gültigen Hostnamen enthalten.
Die folgende Liste zeigt einige Beispielwerte für pszLocalId. Es handelt sich nicht um eine vollständige Liste gültiger Werte.
- 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
Eine IWSDXMLContext-Schnittstelle , die benutzerdefinierte Nachrichtentypen oder Namespaces definiert.
Bei NULL wird ein Standardkontext verwendet, der die integrierten Nachrichtentypen und Namespaces darstellt.
[in] ppHostAddresses
Eine einzelne IWSDAddress-Schnittstelle oder IWSDTransportAddress-Schnittstelle . Die -Objekte bieten Informationen zu bestimmten Adressen, an denen der Host lauschen soll.
Wenn pszLocalId eine logische Adresse enthält, ist das resultierende Verhalten eine Zuordnung zwischen der logischen Adresse und einem bestimmten Satz physischer Adressen (anstelle einer Zuordnung zwischen der logischen Adresse und einer physischen Standardadresse).
[in] dwHostAddressCount
Die Anzahl der Elemente im Array ppHostAddresses . Wenn ppHostAddresses eine IWSDAddress-Schnittstelle ist, muss die Anzahl 1 sein.
[out] ppDeviceHost
Zeiger auf die IWSDDeviceHost-Schnittstelle , die Sie verwenden, um die WSD-spezifische Gerätesemantik verfügbar zu machen, die einem Server zugeordnet ist, der auf eingehende Anforderungen antwortet.
Rückgabewert
Mögliche Rückgabewerte sind unter anderem folgendes:
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
pszLocalId ist NULL, die Länge in Zeichen von pszLocalId überschreitet WSD_MAX_TEXT_LENGTH (8192), oder pszLocalId verweist auf eine URL mit dem Präfix https, und diese URL stimmt nicht mit der URL der Transportadresse überein, auf die von ppHostAddresses verwiesen wird. |
|
ppDeviceHost ist NULL. |
|
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen. |
Hinweise
Die WSDCreateDeviceHostAdvanced-Funktion ruft die IWSDDeviceHost::Init-Methode auf, die eine instance eines IWSDDeviceHost-Objekts initialisiert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | wsdhost.h (include Wsdapi.h) |
Bibliothek | Wsdapi.lib |
DLL | Wsdapi.dll |