WSCInstallProvider64_32-Funktion (ws2spi.h)

[**WSCInstallProvider64_32** ist ab Windows Vista nicht mehr verfügbar. Verwenden Sie stattdessen WSCInstallProvider oder WSCInstallProviderAndChains.]

Die WSCInstallProvider64_32-Funktion installiert den angegebenen Transportdienstanbieter in den 32-Bit- und 64-Bit-Systemkonfigurationsdatenbanken auf einem 64-Bit-Computer.

Syntax

int WSCInstallProvider64_32(
  [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 64-Bit-DLL des Anbieters 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 WSCInstallProvider64_32 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 konnte 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

WSCInstallProvider64_32 ist eine Grundlegende Version der WSCInstallProviderAndChains64_32-Funktion , die nur einen einzelnen Transportdienstanbieter installiert. WSCInstallProvider64_32 können verwendet werden, um ein Basisprotokoll, ein mehrschichtiges Protokoll oder eine Protokollkette zu installieren. Wenn ein mehrschichtiger Dienstanbieter installiert wird, sollte WSCInstallProviderAndChains64_32 verwendet werden, da mit dieser Funktion ein mehrschichtiges Protokoll und mindestens ein Protokollketten mit einem einzelnen Funktionsaufruf installiert werden können. Um dieselbe Arbeit mit WSCInstallProvider64_32 auszuführen , sind mehrere Funktionsaufrufe erforderlich, um jede Dienstanbieterkomponente zu installieren.

Windows Sockets (Winsock) 2 erfüllt die Vorstellung eines mehrschichtigen Protokolls. 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 in der Lage ist, die Datenkommunikation mit einem Remoteendpunkt durchzuführen. 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.

WSCInstallProvider64_32 ist die 64-Bit-Version von WSCInstallProvider , die den Anbieter sowohl in den 32-Bit- als auch in den 64-Bit-Katalogen auf 64-Bit-Plattformen installiert. Das heißt, auf 64-Bit-Plattformen werden zwei Winsock-Kataloge verwaltet, und sowohl 32-Bit- als auch 64-Bit-Prozesse können den mit dieser Funktion installierten Transportanbieter laden. Auf 64-Bit-Plattformen wird WSCInstallProvider nur im 64-Bit-Winsock-Katalog installiert.

Auf einem 64-Bit-Computer werden alle Aufrufe, die nicht speziell für 32-Bit konzipiert sind (z. B. alle Funktionen, die nicht auf "32" enden), im nativen 64-Bit-Katalog ausgeführt. Prozesse, die auf einem 64-Bit-Computer ausgeführt werden, müssen WSCInstallProvider64_32 verwenden, um sowohl im 32-Bit-Katalog als auch im 64-Bit-Katalog zu arbeiten, wobei die Kompatibilität gewahrt bleibt. Die Definitionen und Semantik der spezifischen 32-Bit-Aufrufe sind identisch mit ihren nativen Gegenstücken.

Diese Routine erstellt die erforderlichen allgemeinen Winsock 2-Konfigurationsinformationen für den angegebenen Anbieter. Sie gilt für Basisprotokolle, mehrschichtige Protokolle und Protokollketten.

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

Nachdem diese Routine erfolgreich abgeschlossen wurde, werden die in lpProtocolInfoList bereitgestellten Protokollinformationen von WSAEnumProtocols, WSCEnumProtocols oder WSCEnumProtocols32 zurückgegeben. Beachten Sie, dass in Windows nur Instanzen der Ws2_32.dll, die durch Aufrufen von WSAStartup nach erfolgreichem Abschluss dieser Funktion erstellt wurden, die neuen Einträge in WSAEnumProtocols, WSCEnumProtocols und WSCEnumProtocols32 enthalten.

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

 

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

Die WSCInstallProvider64_32-Funktion kann nur von einem Benutzer aufgerufen werden, der als Mitglied der Gruppe Administratoren angemeldet ist. Wenn WSCInstallProvider64_32 von einem Benutzer aufgerufen wird, der nicht 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 von der aufrufenden Anwendung ausgeführt werden.

Wenn die Funktion WSCInstallProvider oder WSCInstallProviderAndChains verwendet wird, muss die Funktion einmal aufgerufen werden, um den Anbieter im 32-Bit-Katalog zu installieren, und einmal, um den Anbieter im 64-Bit-Katalog auf einer 64-Bit-Plattform zu installieren.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP Professional x64 Edition [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 x64 Edition [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ws2spi.h
Bibliothek Ws2_32.lib
DLL Ws2_32.dll

Weitere Informationen

LoadLibrary

Transportkonfiguration und -installation

Transportdienstanbieter

WSAEnumProtocols

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols

WSCEnumProtocols32

WSCInstallProvider

WSCInstallProviderAndChains

WSCInstallProviderAndChains64_32