Bagikan melalui


Fungsi WSDCreateDeviceHostAdvanced (wsdhost.h)

Membuat host perangkat dan mengembalikan pointer ke antarmuka IWSDDeviceHost .

Sintaks

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

Parameter

[in] pszLocalId

Alamat logis atau fisik perangkat. Alamat logis adalah dari formulir urn:uuid:{guid}. Jika pszLocalId adalah alamat logis, host akan mengumumkan alamat logis lalu mengonversi alamat ke alamat fisik saat menerima pesan Resolve atau Probe.

Jika pszLocalId adalah alamat fisik (seperti URL yang diawali oleh http atau https), host akan menggunakan alamat sebagai alamat fisik dan akan menghosting pada alamat tersebut alih-alih alamat default.

Untuk komunikasi yang aman, pszLocalId harus berupa URL yang diawali oleh https, dan host akan menggunakan protokol SSL/TLS pada port yang ditentukan dalam URL. Port yang direkomendasikan adalah port 5358, karena port ini dicadangkan untuk koneksi aman dengan WSDAPI. Jika tidak ada port yang ditentukan, maka host akan menggunakan port 443. Port host harus dikonfigurasi dengan sertifikat server SSL sebelum memanggil WSDCreateDeviceHostAdvanced. Untuk informasi selengkapnya tentang konfigurasi port host, lihat HttpSetServiceConfiguration.

Jika pszLocalId atau alamat transportasi yang direferensikan oleh ppHostAddresses adalah URL yang diawali oleh https, kedua URL harus identik. Jika tidak demikian, WSDCreateDeviceHostAdvanced akan mengembalikan E_INVALIDARG.

URL apa pun (http atau https) harus dihentikan dengan garis miring berikutnya. URL harus berisi alamat IP atau nama host yang valid.

Daftar berikut ini memperlihatkan beberapa contoh nilai untuk pszLocalId. Ini bukan daftar lengkap nilai yang valid.

  • 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

Antarmuka IWSDXMLContext yang menentukan jenis pesan atau namespace kustom.

Jika NULL, konteks default yang mewakili jenis pesan bawaan dan namespace layanan digunakan.

[in] ppHostAddresses

Antarmuka IWSDAddress tunggal atau antarmuka IWSDTransportAddress . Objek memberikan informasi tentang alamat tertentu yang harus didengarkan host.

Jika pszLocalId berisi alamat logis, perilaku yang dihasilkan adalah pemetaan antara alamat logis dan sekumpulan alamat fisik tertentu (bukan pemetaan antara alamat logis dan alamat fisik default).

[in] dwHostAddressCount

Jumlah item dalam array ppHostAddresses . Jika ppHostAddresses adalah antarmuka IWSDAddress , hitungan harus 1.

[out] ppDeviceHost

Arahkan ke antarmuka IWSDDeviceHost yang Anda gunakan untuk mengekspos semantik perangkat khusus WSD yang terkait dengan server yang merespons permintaan masuk.

Mengembalikan nilai

Kemungkinan nilai pengembalian termasuk, tetapi tidak terbatas pada, berikut ini:

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.
E_INVALIDARG
pszLocalId adalah NULL, panjang karakter pszLocalId melebihi WSD_MAX_TEXT_LENGTH (8192), atau pszLocalId menunjuk ke URL yang diawali oleh https dan URL tersebut tidak cocok dengan URL alamat transportasi yang direferensikan oleh ppHostAddresses.
E_POINTER
ppDeviceHost adalah NULL.
E_OUTOFMEMORY
Tidak cukup memori untuk menyelesaikan operasi.

Keterangan

Fungsi WSDCreateDeviceHostAdvanced memanggil metode IWSDDeviceHost::Init , yang menginisialisasi instans objek IWSDDeviceHost .

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header wsdhost.h (termasuk Wsdapi.h)
Pustaka Wsdapi.lib
DLL Wsdapi.dll

Lihat juga

WSDCreateDeviceHost