Función WSAProviderConfigChange (winsock2.h)
La función WSAProviderConfigChange notifica a la aplicación cuándo se cambia la configuración del proveedor.
Sintaxis
INT WSAAPI WSAProviderConfigChange(
[in, out] LPHANDLE lpNotificationHandle,
[in] LPWSAOVERLAPPED lpOverlapped,
[in] LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
Parámetros
[in, out] lpNotificationHandle
Puntero al identificador de notificación. Si el identificador de notificación se establece en NULL (el valor de identificador no el propio puntero), esta función devuelve un identificador de notificación en la ubicación a la que apunta lpNotificationHandle.
[in] lpOverlapped
Puntero a una estructura WSAOVERLAPPED .
[in] lpCompletionRoutine
Tipo: _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE
Puntero a la rutina de finalización a la que se llama cuando se recibe la notificación de cambio del proveedor.
Valor devuelto
Si no se produce ningún error , WSAProviderConfigChange devuelve 0. De lo contrario, se devuelve un valor de SOCKET_ERROR y se puede recuperar un código de error específico mediante una llamada a WSAGetLastError. El código de error WSA_IO_PENDING indica que la operación superpuesta se ha iniciado correctamente y que la finalización (y, por tanto, el evento de cambio) se indicará más adelante.
Código de error | Significado |
---|---|
Debe producirse una llamada WSAStartup correcta antes de usar esta función. | |
Error en el subsistema de red. | |
No hay suficiente memoria disponible para completar la operación. | |
El valor señalado por el parámetro lpNotificationHandle no es un identificador de notificación válido. | |
El entorno actual del sistema operativo no admite la instalación o eliminación del proveedor sin reiniciar. |
Comentarios
La función WSAProviderConfigChange notifica a la aplicación de proveedor (transporte y espacio de nombres) la instalación o eliminación en entornos operativos Windows que admiten este cambio de configuración sin necesidad de reiniciar. Cuando se llama por primera vez (el parámetro lpNotificationHandle apunta al identificador NULL ), esta función se completa inmediatamente y devuelve el identificador de notificación en la ubicación a la que apunta lpNotificationHandle que se puede usar en llamadas posteriores para recibir notificaciones de instalación y eliminación del proveedor. La segunda y las llamadas posteriores solo se completan cuando cambia la información del proveedor desde el momento en que se realizó la llamada . Se espera (pero no es necesario) que la aplicación usa E/S superpuesta en la segunda y las llamadas subsiguientes a WSAProviderConfigChange, en cuyo caso la llamada devolverá inmediatamente y la aplicación recibirá una notificación de los cambios de configuración del proveedor mediante el mecanismo de finalización elegido a través de los parámetros de finalización superpuestos especificados.
El identificador de notificación devuelto por WSAProviderConfigChange es como cualquier identificador de sistema operativo normal que se debe cerrar (cuando ya no sea necesario) mediante la llamada a CloseHandle de Windows.
La siguiente secuencia de acciones se puede usar para garantizar que la aplicación siempre tenga información de configuración del protocolo actual:
- Llamar a WSAProviderConfigChange
- Llamar a WSAEnumProtocols o WSAEnumNameSpaceProviders
- Siempre que WSAProviderConfigChange notifique a la aplicación del cambio de configuración del proveedor (mediante bloqueos o E/S superpuestas), se debe repetir toda la secuencia de acciones.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 8.1, Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winsock2.h |
Library | Ws2_32.lib |
Archivo DLL | Ws2_32.dll |