Funzione WSAProviderConfigChange (winsock2.h)
La funzione WSAProviderConfigChange invia una notifica all'applicazione quando viene modificata la configurazione del provider.
Sintassi
INT WSAAPI WSAProviderConfigChange(
[in, out] LPHANDLE lpNotificationHandle,
[in] LPWSAOVERLAPPED lpOverlapped,
[in] LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
Parametri
[in, out] lpNotificationHandle
Puntatore all'handle di notifica. Se l'handle di notifica è impostato su NULL (il valore handle non il puntatore stesso), questa funzione restituisce un handle di notifica nella posizione a cui punta lpNotificationHandle.
[in] lpOverlapped
Puntatore a una struttura WSAOVERLAPPED .
[in] lpCompletionRoutine
Tipo: _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE
Puntatore alla routine di completamento chiamata quando viene ricevuta la notifica di modifica del provider.
Valore restituito
Se non si verifica alcun errore, WSAProviderConfigChange restituisce 0. In caso contrario, viene restituito un valore di SOCKET_ERROR e un codice di errore specifico può essere recuperato chiamando WSAGetLastError. Il codice di errore WSA_IO_PENDING indica che l'operazione sovrapposta è stata avviata correttamente e che il completamento (e quindi l'evento di modifica) verrà indicato in un secondo momento.
Codice di errore | Significato |
---|---|
Prima di usare questa funzione, è necessario che venga eseguita una chiamata WSAStartup riuscita. | |
Il sottosistema di rete non è riuscito. | |
Memoria disponibile insufficiente per completare l'operazione. | |
Il valore puntato dal parametro lpNotificationHandle non è un handle di notifica valido. | |
L'ambiente del sistema operativo corrente non supporta l'installazione o la rimozione del provider senza riavvio. |
Commenti
La funzione WSAProviderConfigChange notifica all'applicazione di installazione o rimozione del provider (sia trasporto che spazio dei nomi) in ambienti operativi Windows che supportano tale modifica di configurazione senza richiedere un riavvio. Quando viene chiamato per la prima volta (il parametro lpNotificationHandle punta all'handle NULL ), questa funzione viene completata immediatamente e restituisce l'handle di notifica nella posizione a cui punta lpNotificationHandle che può essere usato nelle chiamate successive per ricevere notifiche di installazione e rimozione del provider. La seconda e tutte le chiamate successive vengono completate solo quando le informazioni sul provider cambiano dal momento in cui è stata effettuata la chiamata È previsto (ma non obbligatorio) che l'applicazione usi operazioni di I/O sovrapposte al secondo e successive chiamate a WSAProviderConfigChange, nel qual caso la chiamata restituisce immediatamente e l'applicazione riceverà una notifica delle modifiche alla configurazione del provider usando il meccanismo di completamento scelto tramite parametri di completamento sovrapposti specificati.
L'handle di notifica restituito da WSAProviderConfigChange è simile a qualsiasi normale handle del sistema operativo che deve essere chiuso (quando non è più necessario) usando la chiamata di Windows CloseHandle .
È possibile usare la sequenza di azioni seguente per garantire che l'applicazione disponga sempre di informazioni di configurazione del protocollo correnti:
- Chiamare WSAProviderConfigChange
- Chiamare WSAEnumProtocols e/o WSAEnumNameSpaceProviders
- Ogni volta che WSAProviderConfigChange notifica all'applicazione la modifica della configurazione del provider (tramite il blocco o l'I/O sovrapposto), l'intera sequenza di azioni deve essere ripetuta.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8.1, Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winsock2.h |
Libreria | Ws2_32.lib |
DLL | Ws2_32.dll |