Compartir a través de


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
WSANOTINITIALISED
Debe producirse una llamada WSAStartup correcta antes de usar esta función.
WSAENETDOWN
Error en el subsistema de red.
WSA_NOT_ENOUGH_MEMORY
No hay suficiente memoria disponible para completar la operación.
WSA_INVALID_HANDLE
El valor señalado por el parámetro lpNotificationHandle no es un identificador de notificación válido.
WSAEOPNOTSUPP
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.
Windows 8.1 y Windows Server 2012 R2: esta función es compatible con las aplicaciones de la Tienda Windows en Windows 8.1, Windows Server 2012 R2 y versiones posteriores.

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

Consulte también

CloseHandle

WSAEnumNameSpaceProviders

WSAEnumProtocols

Funciones winsock

Referencia de Winsock