Funzione WSCUpdateProvider32 (ws2spi.h)

La funzione WSCUpdateProvider32 modifica il provider di trasporto a 32 bit specificato nel database di configurazione del sistema.

Nota Questa chiamata è una versione rigorosamente a 32 bit di WSCUpdateProvider da usare su piattaforme a 64 bit. Viene fornito per consentire ai processi a 64 bit di accedere ai cataloghi a 32 bit.

 

Sintassi

int WSCUpdateProvider32(
  [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 specifica o modifica 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 non si verifica alcun errore, WSCUpdateProvider32 restituisce zero. In caso contrario, restituisce SOCKET_ERROR e un codice di errore specifico è disponibile in lpErrno.

Codice di errore Significato
WSAEFAULT
Uno o più argomenti non si trovano in una parte valida dello spazio indirizzi utente.
WSAEINVAL
Uno o più argomenti non sono validi.
WSANO_RECOVERY
Si è verificato un errore irreversibile. Questo errore viene restituito in diverse condizioni, tra cui quanto segue: l'utente non dispone dei privilegi amministrativi necessari per scrivere nel Registro di sistema Winsock o si è verificato un errore durante l'apertura o la scrittura di una voce del catalogo.
WSA_NOT_ENOUGH_MEMORY
Memoria insufficiente disponibile. Questo errore viene restituito quando la memoria non è sufficiente per allocare una nuova voce del catalogo.

Commenti

WSCUpdateProvider32 è una versione a 32 bit rigorosa di WSCUpdateProvider. In un computer a 64 bit tutte le chiamate non sono specifiche a 32 bit (ad esempio, tutte le funzioni che non terminano in "32") operano sul catalogo nativo a 64 bit. I processi eseguiti in un computer a 64 bit devono usare le chiamate di funzione a 32 bit specifiche per operare su un catalogo a 32 bit e mantenere la compatibilità. Le definizioni e la semantica delle chiamate a 32 bit specifiche sono le stesse delle rispettive controparti native.

Questa funzione modifica le informazioni di configurazione di Windows Sockets 2 per il provider a 32 bit specificato. È applicabile ai protocolli di base, ai protocolli a più livelli e alle catene di protocolli.

Winsock 2 supporta protocolli 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 il 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, 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.

In caso di esito positivo, WSCUpdateProvider32 tenterà di avvisare tutte le applicazioni interessate registrate per la notifica della modifica chiamando WSAProviderConfigChange.

La funzione WSCUpdateProvider32 può essere chiamata solo da un utente connesso come membro del gruppo Administrators. Se WSCUpdateProvider32 viene chiamato da un utente che non è membro del gruppo Administrators, la chiamata di funzione avrà esito negativo.

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 dal chiamante.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista, Windows XP Professional x64 Edition [solo app desktop]
Server minimo supportato Windows Server 2008, 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

WSAProtocol_Info

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols32

WSCInstallProvider64_32

WSCInstallProviderAndChains64_32

WSCUpdateProvider