Funzione WSAAdvertiseProvider (ws2spi.h)
La funzione WSAAdvertiseProvider rende disponibile un provider specifico dello spazio dei nomi versione 2 per tutti i client idonei.
Sintassi
INT WSAAPI WSAAdvertiseProvider(
[in] const GUID *puuidProviderId,
[in] const LPCNSPV2_ROUTINE pNSPv2Routine
);
Parametri
[in] puuidProviderId
Puntatore all'ID provider del provider dello spazio dei nomi da annunciare.
[in] pNSPv2Routine
Puntatore a una struttura NSPV2_ROUTINE con i punti di ingresso del provider di servizi dello spazio dei nomi versione 2 supportati dal provider.
Valore restituito
Se non si verifica alcun errore, WSAProviderCompleteAsyncCall restituisce zero.
Se la funzione ha esito negativo, il valore restituito viene SOCKET_ERROR. Per ottenere informazioni sugli errori estese, chiamare WSAGetLastError, che restituisce uno dei valori di errore estesi seguenti.
Codice di errore | Significato |
---|---|
Memoria insufficiente per eseguire l'operazione. | |
An internal error occurred. | |
Parametro non valido. Questo errore viene restituito se i parametri puuidProviderId o pNSPv2Routine erano **NULL**.
Questo errore viene restituito anche se i membri NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx o NSPv2LookupServiceEnd della struttura NSPV2_ROUTINE a cui punta il parametro pNSPv2Routine sono NULL. Un provider della versione 2 dello spazio dei nomi deve almeno supportare la risoluzione dei nomi che questo set minimo di funzioni. |
|
Impossibile trovare il provider dello spazio dei nomi per il parametro puuidProviderId specificato. | |
Il Ws2_32.dll non è stato inizializzato. L'applicazione deve prima chiamare WSAStartup prima di chiamare qualsiasi funzione Di Windows Sockets. |
Commenti
La funzione WSAAdvertiseProvider viene usata come parte dell'architettura del provider di servizi dello spazio dei nomi versione 2 (NSPv2) disponibile in Windows Vista e versioni successive.
In Windows Vista e Windows Server 2008 la funzione WSAAdvertiseProvider può essere usata solo per le operazioni sui provider di spazi dei nomi NS_EMAIL.
La funzione WSAAdvertiseProvider annuncia un'istanza di un provider NSPv2 per consentire ai client di trovare. Se l'istanza da annunciare è un'istanza di un provider di tipo applicazione (un provider di spazi dei nomi in cui il membro dwProvideType della struttura NAPI_PROVIDER_INSTALLATION_BLOB è ProviderType_Application), l'istanza del provider pubblicizzata sarà visibile a tutti i processi client in esecuzione con lo stesso utente e nella stessa sessione del chiamante di WSAAdvertiseProvider.
In generale, i provider NSPv2 vengono implementati in processi diversi dalle applicazioni chiamanti. I provider NSPv2 non vengono attivati in seguito all'attività del client. Ogni applicazione di hosting del provider decide quando rendere disponibile o non disponibile un provider specifico chiamando le funzioni WSAAAdvertiseProvider e WSAUnadvertiseProvider . L'attività client comporta solo tentativi di contattare il provider, quando disponibile (quando il provider dello spazio dei nomi viene annunciato).
La funzione WSAAdvertiseProvider viene chiamata da qualsiasi applicazione che vuole rendere disponibile un provider specifico per tutti i client idonei (attualmente tutte le applicazioni in esecuzione con le stesse credenziali dell'applicazione host e nella stessa sessione utente).
Un processo può implementare e annunciare più provider contemporaneamente. Windows Sockets gestirà i provider di spazi dei nomi inviando chiamate a quella corretta. Nasconde anche i dettagli dell'interfaccia RPC e converte le chiamate tra processi in chiamate in-process. Pertanto, il provider NSPv2 deve implementare solo una tabella di funzioni del punto di ingresso simili alla struttura NSP_ROUTINE usata da un provider NSPv1. Un provider NSPv2 non deve preoccuparsi dei requisiti specifici di RPC ,ad esempio il marshalling dei dati e la serializzazione.
Il chiamante WSAAdvertiseProvider passa un puntatore a una struttura NSPV2_ROUTINE nel parametro pNSPv2Routine con i punti di ingresso NSPv2 supportati dal provider.
La funzione WSAUnadvertiseProvider rende un provider di spazi dei nomi specifico non più disponibile per i client.
Requisiti
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ws2spi.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |