Condividi tramite


Metodo IWSDiscoveryPublisher::P ublish (wsddisco.h)

Annuncia la presenza di un host di rete inviando un messaggio Hello .

Sintassi

HRESULT Publish(
  [in]           LPCWSTR             pszId,
  [in]           ULONGLONG           ullMetadataVersion,
  [in]           ULONGLONG           ullInstanceId,
  [in]           ULONGLONG           ullMessageNumber,
  [in, optional] LPCWSTR             pszSessionId,
  [in, optional] const WSD_NAME_LIST *pTypesList,
  [in, optional] const WSD_URI_LIST  *pScopesList,
  [in, optional] const WSD_URI_LIST  *pXAddrsList
);

Parametri

[in] pszId

Indirizzo logico o fisico del dispositivo, usato come indirizzo dell'endpoint del dispositivo. Un indirizzo logico è nel formato urn:uuid:{guid}. Un indirizzo fisico può essere un URI preceduto da http o https o semplicemente un URI preceduto da uri. Quando possibile, usare un indirizzo logico.

[in] ullMetadataVersion

Versione corrente dei metadati.

Nota Per la compatibilità con la specifica WS-Discovery, questo valore deve essere minore o uguale a UINT_MAX (4294967295).
 

[in] ullInstanceId

Identificatore per l'istanza corrente del dispositivo da pubblicare. Questo identificatore deve essere incrementato ogni volta che il servizio viene riavviato. Per altre informazioni sugli identificatori di istanza, vedere Appendice I della specifica WS-Discovery.

Nota Per la compatibilità con la specifica WS-Discovery, questo valore deve essere minore o uguale a UINT_MAX (4294967295).
 

[in] ullMessageNumber

Contatore nell'ambito dell'identificatore di istanza per il messaggio corrente. Il numero di messaggio deve essere incrementato per ogni messaggio.

Nota Per la compatibilità con la specifica WS-Discovery, questo valore deve essere minore o uguale a UINT_MAX (4294967295).
 

[in, optional] pszSessionId

Identificatore univoco nell'ambito dell'identificatore di istanza per la sessione corrente. Questo parametro corrisponde all'identificatore di sequenza nel blocco AppSequence nel messaggio Probe. Per altre informazioni sugli identificatori di sequenza, vedere Appendice I della specifica WS-Discovery.

Questo parametro può essere NULL.

[in, optional] pTypesList

Puntatore a una struttura WSD_NAME_LIST che rappresenta l'elenco di tipi supportati dall'host di pubblicazione. Può essere NULL.

[in, optional] pScopesList

Puntatore a una struttura WSD_URI_LIST che rappresenta l'elenco di ambiti corrispondenti supportati dall'host di pubblicazione. L'elenco contiene valori hash in formato stringa. Può essere NULL.

[in, optional] pXAddrsList

Puntatore a una struttura WSD_URI_LIST che rappresenta l'elenco di indirizzi di trasporto supportati dall'host di pubblicazione. Ogni stringa di indirizzo di trasporto contiene un indirizzo e un numero di porta che può essere usato per la connessione da un host remoto. Può essere NULL.

Valore restituito

I valori restituiti possibili includono, ma non sono limitati ai seguenti:

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
E_INVALIDARG
Una o più delle condizioni seguenti sono vere:
  • pszId è NULL.
  • La lunghezza in caratteri di pszId supera WSD_MAX_TEXT_LENGTH (8192).
  • La lunghezza in caratteri di pszSessionId supera WSD_MAX_TEXT_LENGTH (8192).
HRESULT_FROM_WIN32(ERROR_NO_CALLBACK_ACTIVE)
Non è presente alcun sink di notifica registrato. Per collegare un sink, chiamare RegisterNotificationSink.
E_ABORT
L'autore non è stato avviato. Il collegamento di un sink di notifica avvia il server di pubblicazione. Per collegare un sink, chiamare RegisterNotificationSink.
E_OUTOFMEMORY
Memoria insufficiente per completare l'operazione.

Commenti

In caso di esito positivo, Publish invierà un messaggio hello WS-Discovery alla subnet locale con le informazioni fornite.

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 wsddisco.h (include Wsdapi.h)
DLL Wsdapi.dll

Vedi anche

IWSDiscoveryPublisher