WSCInstallNameSpaceEx-Funktion (ws2spi.h)
Die WSCInstallNameSpaceEx-Funktion installiert einen Namespaceanbieter. Für Anbieter, die mehrere Namespaces unterstützen können, muss diese Funktion für jeden unterstützten Namespace aufgerufen werden, und jedes Mal muss ein eindeutiger Anbieterbezeichner bereitgestellt werden.
Syntax
INT WSCInstallNameSpaceEx(
[in] LPWSTR lpszIdentifier,
[in] LPWSTR lpszPathName,
[in] DWORD dwNameSpace,
[in] DWORD dwVersion,
[in] LPGUID lpProviderId,
[in] LPBLOB lpProviderSpecific
);
Parameter
[in] lpszIdentifier
Ein Zeiger auf eine Zeichenfolge, die den Anbieter identifiziert, der dem im lpProviderId-Parameter übergebenen GUID (Globally Unique Identifier) zugeordnet ist.
[in] lpszPathName
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] dwNameSpace
Der von diesem Anbieter unterstützte Namespace.
[in] dwVersion
Die Versionsnummer des Anbieters.
[in] lpProviderId
Ein Zeiger auf eine GUID für den Anbieter. Diese GUID sollte von Uuidgen.exe generiert werden.
[in] lpProviderSpecific
Ein anbieterspezifisches Datenblob, das dem Namespaceeintrag zugeordnet ist.
Rückgabewert
Wenn kein Fehler auftritt, gibt die WSCInstallNameSpaceEx-FunktionNO_ERROR (null) zurück. Andernfalls wird SOCKET_ERROR zurückgegeben, wenn die Funktion fehlschlägt, und Sie müssen den entsprechenden Fehlercode mithilfe der WSAGetLastError-Funktion abrufen.
Fehlercode | Bedeutung |
---|---|
Die Aufrufroutine verfügt nicht über ausreichende Berechtigungen, um einen Namespace zu installieren. | |
Mindestens ein Argument ist ungültig. | |
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 ein Fehler beim Erstellen oder Installieren eines Katalogeintrags. | |
Ein Systemaufruf, der nie fehlschlagen sollte, ist fehlgeschlagen. | |
Es war nicht genügend Arbeitsspeicher verfügbar. Dieser Fehler wird zurückgegeben, wenn nicht genügend Arbeitsspeicher zum Zuordnen eines neuen Katalogeintrags vorhanden ist. |
Hinweise
Die Namespacekonfigurationsfunktionen wirken sich nicht auf Anwendungen aus, die bereits ausgeführt werden. Neu installierte Namensraumanbieter sind weder für Anwendungen sichtbar, noch werden die Änderungen im Aktivierungsstatus eines Namensraumanbieters angezeigt. Anwendungen, die nach dem Aufruf von WSCInstallNameSpaceEx gestartet wurden, sehen die Änderungen.
Das anbieterspezifische Datenblob, das dem Namespaceeintrag zugeordnet ist, der im lpProviderInfo-Parameter übergeben wird, kann mithilfe der WSAEnumNameSpaceProvidersEx-Funktion abgefragt werden.
Derzeit ist der einzige Namespaceanbieter, der in Windows enthalten ist, der den lpProviderInfo-Parameter verwendet, der NS_EMAIL Anbieter. Das Format des Puffers, auf den der lpProviderInfo-Parameter für einen NS_EMAIL-Namespaceanbieter verweist, ist eine NAPI_PROVIDER_INSTALLATION_BLOB-Struktur .
Die WSCInstallNameSpaceEx-Funktion kann nur von einem Benutzer aufgerufen werden, der als Mitglied der Gruppe Administratoren angemeldet ist. Wenn WSCInstallNameSpaceEx von einem Benutzer aufgerufen wird, der kein Mitglied der Gruppe Administratoren ist, schlägt der Funktionsaufruf fehl. Bei Computern unter Windows Vista oder Windows Server 2008 kann diese Funktion auch aufgrund der Benutzerkontensteuerung (UAC) fehlschlagen. Wenn eine Anwendung, die diese Funktion enthält, von einem Benutzer ausgeführt wird, der als Mitglied der Gruppe Administratoren angemeldet ist, die nicht der integrierten Administratorgruppe angehört, schlägt dieser Aufruf fehl, es sei denn, die Anwendung wurde in der Manifestdatei mit einem requestedExecutionLevel gekennzeichnet, der auf requireAdministrator festgelegt ist. Wenn in der Anwendung unter Windows Vista oder Windows Server 2008 diese Manifestdatei nicht vorhanden ist, muss ein Benutzer, der sich als Mitglied der Gruppe "Administratoren" angemeldet hat und nicht der integrierte Administrator die Anwendung in einer erweiterten Shell als integrierter Administrator (RunAs-Administrator) ausführen, damit diese Funktion erfolgreich ist.
Anforderungen
Anforderung | Wert |
---|---|
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 |