funzione WSCInstallProvider64_32 (ws2spi.h)
[**WSCInstallProvider64_32** non è più disponibile per l'uso a partire da Windows Vista. Usare invece WSCInstallProvider o WSCInstallProviderAndChains.]
La funzione WSCInstallProvider64_32 installa il provider di servizi di trasporto specificato nei database di configurazione del sistema a 32 bit e a 64 bit in un computer a 64 bit.
Sintassi
int WSCInstallProvider64_32(
[in] LPGUID lpProviderId,
[in] const WCHAR *lpszProviderDllPath,
[in] const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
[in] DWORD dwNumberOfEntries,
[out] LPINT lpErrno
);
Parametri
[in] lpProviderId
Puntatore a un identificatore univoco globale (GUID) per il provider.
[in] lpszProviderDllPath
Puntatore a una stringa Unicode che contiene il percorso di caricamento della DLL a 64 bit del provider. Questa stringa osserva le regole consuete per la risoluzione del percorso e può contenere stringhe di ambiente incorporate (ad esempio %SystemRoot%). Tali stringhe di ambiente vengono espanse quando il Ws2_32.dll deve successivamente caricare la DLL del provider per conto di un'applicazione. Dopo l'espansione di tutte le stringhe di ambiente incorporate, il Ws2_32.dll passa la stringa risultante alla funzione LoadLibrary che carica il provider in memoria. Per altre informazioni, vedere LoadLibrary.
[in] lpProtocolInfoList
Puntatore a una matrice di strutture WSAProtocol_Info . Ogni struttura definisce un protocollo, una famiglia di indirizzi e un tipo di socket supportati dal provider.
[in] dwNumberOfEntries
Numero di voci nella matrice lpProtocolInfoList .
[out] lpErrno
Puntatore al codice di errore se la funzione ha esito negativo.
Valore restituito
Se WSCInstallProvider64_32 ha esito positivo, restituisce zero. In caso contrario, restituisce SOCKET_ERROR e viene restituito un codice di errore specifico nel parametro lpErrno .
Codice di errore | Significato |
---|---|
Uno o più argomenti non si trovano in una parte valida dello spazio indirizzi utente. | |
Uno o più argomenti non sono validi. | |
Impossibile allocare memoria per i buffer. | |
Si è verificato un errore irreversibile. Questo errore viene restituito in diverse condizioni, tra cui quanto segue: il provider è già installato, l'utente non dispone dei privilegi amministrativi necessari per scrivere nel Registro di sistema Winsock o si è verificato un errore durante la creazione o l'installazione di una voce del catalogo. | |
Chiamata di sistema che non dovrebbe mai avere esito negativo. | |
Memoria insufficiente disponibile. Questo errore viene restituito quando la memoria non è sufficiente per allocare una nuova voce del catalogo. |
Commenti
WSCInstallProvider64_32 è una versione di base della funzione WSCInstallProviderAndChains64_32 che installa solo un singolo provider di servizi di trasporto. WSCInstallProvider64_32 può essere usato per installare un protocollo di base, un protocollo a più livelli o una catena di protocolli. Se è in corso l'installazione di un provider di servizi a più livelli, è necessario usare WSCInstallProviderAndChains64_32 perché questa funzione consente l'installazione di un protocollo a più livelli e di una o più catene di protocolli con una singola chiamata di funzione. Per eseguire lo stesso lavoro usando WSCInstallProvider64_32 richiederebbe più chiamate di funzione per installare ogni componente del provider di servizi.
Windows Sockets (Winsock) 2 supporta la nozione di protocollo a più livelli. Un protocollo a più livelli è uno che implementa solo funzioni di comunicazione di livello superiore, mentre si basa su uno stack di trasporto sottostante per lo scambio effettivo di dati con un endpoint remoto. Un esempio di protocollo a più livelli è un livello di sicurezza che aggiunge un protocollo al processo di creazione della connessione per eseguire l'autenticazione e stabilire uno schema di crittografia concordato a vicenda. Un protocollo di sicurezza di questo tipo richiede in genere i servizi di un protocollo di trasporto affidabile sottostante, ad esempio TCP o SPX. Il termine protocollo di base si riferisce a un protocollo, ad esempio TCP o SPX, che è completamente in grado di eseguire comunicazioni di dati con un endpoint remoto. Il termine protocollo a più livelli viene usato per descrivere un protocollo che non può essere autonomo. Una catena di protocolli verrebbe quindi definita come uno o più protocolli a più livelli collegati e ancorati da un protocollo di base. Un protocollo di base ha il membro ChainLen della struttura WSAProtocol_Info impostata su BASE_PROTOCOL che è definito come 1. Un protocollo a più livelli ha il membro ChainLen della struttura WSAPROTOCOL_INFO impostata su LAYERED_PROTOCOL che è definito come zero. Una catena di protocolli ha il membro ChainLen della struttura WSAPROTOCOL_INFO impostata su maggiore di 1.
WSCInstallProvider64_32 è la versione a 64 bit di WSCInstallProvider che installa il provider nei cataloghi a 32 bit e a 64 bit su piattaforme a 64 bit. Ovvero, su piattaforme a 64 bit, vengono mantenuti due cataloghi Winsock e i processi a 32 bit e a 64 bit possono caricare il provider di trasporto installato con questa funzione. Nelle piattaforme a 64 bit WSCInstallProvider viene installato solo nel catalogo Winsock a 64 bit.
In un computer a 64 bit tutte le chiamate non sono progettate in modo specifico per 32 bit (ad esempio, tutte le funzioni che non terminano in "32") operano sul catalogo a 64 bit nativo. I processi eseguiti in un computer a 64 bit devono usare WSCInstallProvider64_32 per operare sia sul catalogo a 32 bit che sul catalogo a 64 bit, mantenendo la compatibilità. Le definizioni e la semantica delle chiamate a 32 bit specifiche sono le stesse delle rispettive controparti native.
Questa routine crea le informazioni di configurazione comuni di Winsock 2 necessarie per il provider specificato. È applicabile ai protocolli di base, ai protocolli a più livelli e alle catene di protocolli.
Il parametro lpProtocolInfoList contiene un elenco di voci di protocollo da installare. I chiamanti di WSCInstallProvider64_32 sono responsabili della configurazione delle voci del protocollo appropriate. Il parametro lpProtocolInfoList non deve essere NULL.
Al termine di questa routine, le informazioni sul protocollo fornite in lpProtocolInfoList verranno restituite da WSAEnumProtocols, WSCEnumProtocols o WSCEnumProtocols32. Tenere presente che in Windows solo le istanze del Ws2_32.dll create chiamando WSAStartup dopo il completamento di questa funzione includeranno le nuove voci in WSAEnumProtocols, WSCEnumProtocols e WSCEnumProtocols32.
In caso di esito positivo, WSCInstallProvider64_32 tenterà di avvisare tutte le applicazioni interessate registrate per la notifica della modifica chiamando WSAProviderConfigChange.
La funzione WSCInstallProvider64_32 può essere chiamata solo da un utente connesso come membro del gruppo Administrators. Se WSCInstallProvider64_32 viene chiamato da un utente che non è membro del gruppo Administrators, la chiamata di funzione avrà esito negativo e WSANO_RECOVERY viene restituito nel parametro lpErrno . Per i computer che eseguono Windows Vista o Windows Server 2008, questa funzione può avere esito negativo anche a causa del controllo dell'account utente. Se un'applicazione che contiene questa funzione viene eseguita da un utente connesso come membro del gruppo Administrators diverso dall'amministratore predefinito, questa chiamata avrà esito negativo a meno che l'applicazione non sia stata contrassegnata nel file manifesto con un set requestedExecutionLevel impostato su requireAdministrator. Se l'applicazione in Windows Vista o Windows Server 2008 non dispone di questo file manifesto, un utente connesso come membro del gruppo Administrators diverso dall'amministratore predefinito deve quindi eseguire l'applicazione in una shell avanzata come amministratore predefinito (amministratore RunAs) affinché questa funzione abbia esito positivo.
Qualsiasi installazione di file o configurazione specifica del provider di servizi deve essere eseguita dall'applicazione chiamante.
Se viene usata la funzione WSCInstallProvider o WSCInstallProviderAndChains , la funzione deve essere chiamata una volta per installare il provider nel catalogo a 32 bit e una volta per installare il provider nel catalogo a 64 bit in una piattaforma a 64 bit.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP Professional x64 Edition [solo app desktop] |
Server minimo supportato | Windows Server 2003 x64 Edition [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | ws2spi.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |
Vedi anche
Configurazione e installazione del trasporto