WSAAdvertiseProvider-Funktion (ws2spi.h)

Die WSAAdvertiseProvider-Funktion stellt einen bestimmten Namespaceanbieter der Version 2 für alle berechtigten Clients zur Verfügung.

Syntax

INT WSAAPI WSAAdvertiseProvider(
  [in] const GUID             *puuidProviderId,
  [in] const LPCNSPV2_ROUTINE pNSPv2Routine
);

Parameter

[in] puuidProviderId

Ein Zeiger auf die Anbieter-ID des namespaceanbieters, der angekündigt werden soll.

[in] pNSPv2Routine

Ein Zeiger auf eine NSPV2_ROUTINE-Struktur mit den vom Anbieter unterstützten Einstiegspunkten des Namespacedienstanbieters Version 2.

Rückgabewert

Wenn kein Fehler auftritt, gibt WSAProviderCompleteAsyncCall null zurück.

Wenn die Funktion fehlschlägt, wird der Rückgabewert SOCKET_ERROR. Um erweiterte Fehlerinformationen abzurufen, rufen Sie WSAGetLastError auf, wodurch einer der folgenden erweiterten Fehlerwerte zurückgegeben wird.

Fehlercode Bedeutung
WSA_NOT_ENOUGH_MEMORY
Zum Ausführen des Vorgangs war nicht genügend Arbeitsspeicher vorhanden.
WSAEFAULT
Interner Fehler.
WSAEINVAL
Ein Parameter war ungültig. Dieser Fehler wird zurückgegeben, wenn die Parameter puuidProviderId oder pNSPv2Routine **NULL** lauteten.

Dieser Fehler wird auch zurückgegeben, wenn die Mitglieder NSPv2LookupServiceBegin, NSPv2LookupServiceNextEx oder NSPv2LookupServiceEnd der NSPV2_ROUTINE Struktur, auf die vom pNSPv2Routine-Parameter verwiesen wird, NULL sind. Ein Namespaceanbieter der Version 2 muss mindestens die Namensauflösung unterstützen, die dieser Mindestsatz von Funktionen erfüllt.

WSAEINVALIDPROVIDER
Der Namespaceanbieter konnte für den angegebenen puuidProviderId-Parameter nicht gefunden werden.
WSANOTINITIALISIERT
Die Ws2_32.dll wurde nicht initialisiert. Die Anwendung muss zuerst WSAStartup aufrufen, bevor sie Windows Sockets-Funktionen aufruft.

Hinweise

Die WSAAdvertiseProvider-Funktion wird als Teil der NSPv2-Architektur (Namespace Service Provider Version-2) verwendet, die unter Windows Vista und höher verfügbar ist.

Unter Windows Vista und Windows Server 2008 kann die WSAAdvertiseProvider-Funktion nur für Vorgänge auf NS_EMAIL Namespaceanbietern verwendet werden.

Die WSAAdvertiseProvider-Funktion kündigt eine instance eines NSPv2-Anbieters an, nach dem Clients gesucht werden können. Wenn die instance, die angekündigt werden soll, eine instance eines Anwendungstypanbieters ist (ein Namespaceanbieter, bei dem das dwProvideType-Element der NAPI_PROVIDER_INSTALLATION_BLOB-StrukturProviderType_Application ist), ist der angekündigte Anbieter instance für alle Clientprozesse sichtbar, die unter demselben Benutzer und in derselben Sitzung wie der Aufrufer von ausgeführt werden.WSAAdvertiseProvider.

Im Allgemeinen werden NSPv2-Anbieter in anderen Prozessen als den aufrufenden Anwendungen implementiert. NSPv2-Anbieter werden aufgrund der Clientaktivität nicht aktiviert. Jeder Anbieter, der eine Anwendung hostet, entscheidet, wann ein bestimmter Anbieter verfügbar oder nicht verfügbar ist, indem er die Funktionen WSAAdvertiseProvider und WSAUnadvertiseProvider aufruft. Die Clientaktivität führt nur zu Kontaktversuchen mit dem Anbieter, sofern verfügbar (wenn der Namespaceanbieter angekündigt wird).

Die WSAAdvertiseProvider-Funktion wird von jeder Anwendung aufgerufen, die einen bestimmten Anbieter für alle berechtigten Clients verfügbar machen möchte (derzeit alle Anwendungen, die mit den gleichen Anmeldeinformationen wie die Hostinganwendung und in derselben Benutzersitzung ausgeführt werden).

Ein Prozess kann mehrere Anbieter gleichzeitig implementieren und ankündigen. Windows Sockets verwaltet die Namespaceanbieter, indem Aufrufe an den richtigen weitergeleitet werden. Außerdem werden Details der RPC-Schnittstelle ausgeblendet und prozessübergreifende Aufrufe in prozessinterne Aufrufe übersetzt. Sodass der NSPv2-Anbieter nur eine Tabelle mit Einstiegspunktfunktionen implementieren muss, die der NSP_ROUTINE Struktur ähneln, die von einem NSPv1-Anbieter verwendet wird. Ein NSPv2-Anbieter muss sich nicht um RPC-spezifische Anforderungen (z. B. Daten marshalling und Serialisierung) kümmern.

Der WSAAdvertiseProvider-Aufrufer übergibt einen Zeiger an eine NSPV2_ROUTINE-Struktur im pNSPv2Routine-Parameter mit den vom Anbieter unterstützten NSPv2-Einstiegspunkten.

Die WSAUnadvertiseProvider-Funktion macht einen bestimmten Namespaceanbieter für Clients nicht mehr verfügbar.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ws2spi.h
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

NAPI_PROVIDER_INSTALLATION_BLOB

NAPI_PROVIDER_TYPE

NSPV2_ROUTINE

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSAProviderCompleteAsyncCall

WSASetService

WSAUnadvertiseProvider

WSCEnumNameSpaceProvidersEx32