Freigeben über


WSCInstallProvider-Funktion (ws2spi.h)

**Hinweis** Mehrschichtdienstanbieter sind veraltet. Verwenden Sie ab Windows 8 und Windows Server 2012 die Windows-Filterplattform.
 
Die **WSCInstallProvider**-Funktion installiert den angegebenen Transportanbieter in der Systemkonfigurationsdatenbank.

Syntax

int WSCInstallProvider(
  [in]  LPGUID                    lpProviderId,
  [in]  const WCHAR               *lpszProviderDllPath,
  [in]  const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
  [in]  DWORD                     dwNumberOfEntries,
  [out] LPINT                     lpErrno
);

Parameter

[in] lpProviderId

Ein Zeiger auf einen Globally Unique Identifier (GUID) für den Anbieter.

[in] lpszProviderDllPath

Ein Zeiger auf eine Unicode-Zeichenfolge, die den Ladepfad zur Anbieter-DLL enthält. Diese Zeichenfolge beachtet die üblichen Regeln für die Pfadauflösung und kann eingebettete Umgebungszeichenfolgen (z. B. %SystemRoot%) enthalten. Solche Umgebungszeichenfolgen werden erweitert, wenn die Ws2_32.dll anschließend die Anbieter-DLL im Namen einer Anwendung laden muss. Nachdem eingebettete Umgebungszeichenfolgen erweitert wurden, übergibt der Ws2_32.dll die resultierende Zeichenfolge an die LoadLibrary-Funktion , die den Anbieter in den Arbeitsspeicher lädt. Weitere Informationen finden Sie unter LoadLibrary.

[in] lpProtocolInfoList

Ein Zeiger auf ein Array von WSAProtocol_Info Strukturen. Jede Struktur definiert ein Protokoll, eine Adressfamilie und einen Sockettyp, der vom Anbieter unterstützt wird.

[in] dwNumberOfEntries

Die Anzahl der Einträge im Array lpProtocolInfoList .

[out] lpErrno

Ein Zeiger auf den Fehlercode, wenn die Funktion fehlschlägt.

Rückgabewert

Wenn WSCInstallProvider erfolgreich ist, wird null zurückgegeben. Andernfalls wird SOCKET_ERROR zurückgegeben, und im lpErrno-Parameter wird ein bestimmter Fehlercode zurückgegeben.

Fehlercode Bedeutung
WSAEFAULT
Mindestens eins der Argumente befindet sich nicht in einem gültigen Teil des Benutzeradressraums.
WSAEINVAL
Mindestens ein Argument ist ungültig.
WSAENOBUFS
Speicher kann nicht für Puffer zugewiesen werden.
WSANO_RECOVERY
Ein nicht behebbarer Fehler ist aufgetreten. Dieser Fehler wird unter verschiedenen Bedingungen zurückgegeben, einschließlich der folgenden: Der Anbieter ist bereits installiert, dem Benutzer fehlen die Administratorrechte, die zum Schreiben in die Winsock-Registrierung erforderlich sind, oder beim Erstellen oder Installieren eines Katalogeintrags ist ein Fehler aufgetreten.
WSASYSCALLFAILURE
Ein Systemaufruf, der niemals fehlschlagen sollte, ist fehlgeschlagen.
WSA_NOT_ENOUGH_MEMORY
Nicht genügend Arbeitsspeicher war verfügbar. Dieser Fehler wird zurückgegeben, wenn nicht genügend Arbeitsspeicher vorhanden ist, um einen neuen Katalogeintrag zuzuweisen.

Hinweise

WSCInstallProvider wird verwendet, um einen einzelnen Transportdienstanbieter zu installieren. Diese Routine erstellt die erforderlichen allgemeinen Windows Sockets 2-Konfigurationsinformationen für den angegebenen Anbieter. Sie gilt für Basisprotokolle, mehrschichtige Protokolle und Protokollketten. Wenn ein Mehrschichtdienstanbieter installiert wird, sollte WSCInstallProviderAndChains verwendet werden. WSCInstallProviderAndChains kann ein mehrschichtiges Protokoll und ein oder mehrere Protokollketten mit einem einzelnen Funktionsaufruf installieren. Um dieselbe Arbeit mit WSCInstallProvider auszuführen, sind mehrere Funktionsaufrufe erforderlich.

Winsock 2 bietet mehrschichtige Protokolle. Ein mehrschichtiges Protokoll ist ein Protokoll, das nur Kommunikationsfunktionen auf höherer Ebene implementiert, während es sich auf einen zugrunde liegenden Transportstapel für den tatsächlichen Austausch von Daten mit einem Remoteendpunkt verlässt. Ein Beispiel für ein mehrschichtiges Protokoll wäre eine Sicherheitsebene, die dem Verbindungsaufbauprozess ein Protokoll hinzufügt, um die Authentifizierung durchzuführen und ein einvernehmlich vereinbartes Verschlüsselungsschema einzurichten. Ein solches Sicherheitsprotokoll erfordert im Allgemeinen die Dienste eines zugrunde liegenden zuverlässigen Transportprotokolls wie TCP oder SPX. Der Begriff Basisprotokoll bezieht sich auf ein Protokoll wie TCP oder SPX, das die Datenkommunikation mit einem Remoteendpunkt durchführen kann. Der Begriff Mehrschichtprotokoll wird verwendet, um ein Protokoll zu beschreiben, das nicht allein stehen kann. Eine Protokollkette wird dann als ein oder mehrere mehrstufige Protokolle definiert, die aneinandergereiht und durch ein Basisprotokoll verankert sind. Bei einem Basisprotokoll ist das ChainLen-Element der WSAProtocol_Info-Struktur auf BASE_PROTOCOL festgelegt, das als 1 definiert ist. Bei einem mehrschichtigen Protokoll ist das ChainLen-Element der WSAPROTOCOL_INFO-Struktur auf LAYERED_PROTOCOL festgelegt, das als Null definiert ist. Bei einer Protokollkette ist der ChainLen-Member der WSAPROTOCOL_INFO-Struktur auf größer als 1 festgelegt.

Der parameter lpProtocolInfoList enthält eine Liste der zu installierenden Protokolleinträge. Aufrufer von WSCInstallProvider sind für die Einrichtung der richtigen Protokolleinträge verantwortlich. Der lpProtocolInfoList-Parameter darf nicht NULL sein.

Nach erfolgreichem Abschluss dieses Aufrufs geben alle nachfolgenden Aufrufe von WSAEnumProtocols oder WSCEnumProtocols die neu erstellten Protokolleinträge zurück. Beachten Sie, dass in Windows-Umgebungen nur Instanzen von Ws_32.dll, die nach erfolgreichem Abschluss von WSCInstallProvider durch Aufrufen von WSAStartup erstellt wurden, die neuen Einträge enthalten, wenn WSAEnumProtocols und WSCEnumProtocols zurückgegeben werden.

Hinweis Die WSAEnumProtocols-Funktion listet keinen Mehrschichtprotokolleintrag auf, während WSCEnumProtocols dies tut.

 

Bei Erfolg versucht WSCInstallProvider , alle interessierten Anwendungen zu benachrichtigen, die sich für die Benachrichtigung über die Änderung registriert haben, indem WSAProviderConfigChange aufgerufen wird.

Die WSCInstallProvider-Funktion kann nur von einem Benutzer aufgerufen werden, der als Mitglied der Gruppe Administratoren angemeldet ist. Wenn WSCInstallProvider von einem Benutzer aufgerufen wird, der kein Mitglied der Gruppe Administratoren ist, schlägt der Funktionsaufruf fehl, und WSANO_RECOVERY wird im lpErrno-Parameter zurückgegeben. Bei Computern, auf denen Windows Vista oder Windows Server 2008 ausgeführt wird, kann diese Funktion auch aufgrund der Benutzerkontensteuerung (UAC) fehlschlagen. Wenn eine Anwendung, die diese Funktion enthält, von einem Benutzer ausgeführt wird, der nicht als mitglied der Gruppe Administratoren als der integrierte Administrator angemeldet ist, schlägt dieser Aufruf fehl, es sei denn, die Anwendung wurde in der Manifestdatei mit einem requestedExecutionLevel-Wert gekennzeichnet, der auf requireAdministrator festgelegt ist. Wenn in der Anwendung unter Windows Vista oder Windows Server 2008 diese Manifestdatei fehlt, muss ein Benutzer, der sich als Mitglied der Gruppe Administratoren angemeldet hat, nicht der integrierte Administrator, die Anwendung dann in einer erweiterten Shell als integrierter Administrator (RunAs-Administrator) ausführen, damit diese Funktion erfolgreich ist.

Jede Dateiinstallation oder dienstanbieterspezifische Konfiguration muss vom Aufrufer ausgeführt werden.

Anforderungen

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

Weitere Informationen

WSAEnumProtocols

WSAProtocol_Info

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider

WSCEnumProtocols