Compartir a través de


Función WSCUpdateProvider32 (ws2spi.h)

La función WSCUpdateProvider32 modifica el proveedor de transporte de 32 bits especificado en la base de datos de configuración del sistema.

Nota Esta llamada es una versión estricta de 32 bits de WSCUpdateProvider para su uso en plataformas de 64 bits. Se proporciona para permitir que los procesos de 64 bits accedan a los catálogos de 32 bits.

 

Sintaxis

int WSCUpdateProvider32(
  [in]  LPGUID                    lpProviderId,
  [in]  const WCHAR               *lpszProviderDllPath,
  [in]  const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
  [in]  DWORD                     dwNumberOfEntries,
  [out] LPINT                     lpErrno
);

Parámetros

[in] lpProviderId

Puntero a un identificador único global (GUID) para el proveedor.

[in] lpszProviderDllPath

Puntero a una cadena Unicode que contiene la ruta de acceso de carga al archivo DLL de 64 bits del proveedor. Esta cadena observa las reglas habituales para la resolución de rutas de acceso y puede contener cadenas de entorno insertadas (como %SystemRoot%). Estas cadenas de entorno se expanden cuando el Ws2_32.dll debe cargar posteriormente el archivo DLL del proveedor en nombre de una aplicación. Una vez expandidas las cadenas de entorno incrustadas, el Ws2_32.dll pasa la cadena resultante a la función LoadLibrary que carga el proveedor en memoria. Para obtener más información, consulte LoadLibrary.

[in] lpProtocolInfoList

Puntero a una matriz de estructuras de WSAProtocol_Info . Cada estructura especifica o modifica un protocolo, una familia de direcciones y un tipo de socket admitidos por el proveedor.

[in] dwNumberOfEntries

Número de entradas de la matriz lpProtocolInfoList .

[out] lpErrno

Puntero al código de error si se produce un error en la función.

Valor devuelto

Si no se produce ningún error, WSCUpdateProvider32 devuelve cero. De lo contrario, devuelve SOCKET_ERROR y un código de error específico está disponible en lpErrno.

Código de error Significado
WSAEFAULT
Uno o varios de los argumentos no están en una parte válida del espacio de direcciones del usuario.
WSAEINVAL
Uno o varios argumentos no son válidos.
WSANO_RECOVERY
Error irrecuperable. Este error se devuelve en varias condiciones, incluido lo siguiente: el usuario carece de los privilegios administrativos necesarios para escribir en el registro winsock o se produjo un error al abrir o escribir una entrada de catálogo.
WSA_NOT_ENOUGH_MEMORY
Memoria insuficiente disponible. Este error se devuelve cuando no hay memoria suficiente para asignar una nueva entrada de catálogo.

Comentarios

WSCUpdateProvider32 es una versión estricta de 32 bits de WSCUpdateProvider. En un equipo de 64 bits, todas las llamadas no funcionan específicamente de 32 bits (por ejemplo, todas las funciones que no terminan en "32") funcionan en el catálogo nativo de 64 bits. Los procesos que se ejecutan en un equipo de 64 bits deben usar las llamadas de función específicas de 32 bits para funcionar en un catálogo estrictamente de 32 bits y conservar la compatibilidad. Las definiciones y la semántica de las llamadas de 32 bits específicas son las mismas que sus equivalentes nativos.

Esta función modifica la información de configuración de Windows Sockets 2 para el proveedor de 32 bits especificado. Se aplica a protocolos base, protocolos en capas y cadenas de protocolos.

Winsock 2 admite protocolos en capas. Un protocolo en capas es uno que implementa solo funciones de comunicaciones de nivel superior, mientras se basa en una pila de transporte subyacente para el intercambio real de datos con un punto de conexión remoto. Un ejemplo de un protocolo en capas sería un nivel de seguridad que agrega el protocolo al proceso de establecimiento de conexión para realizar la autenticación y establecer un esquema de cifrado mutuamente acordado. Por lo general, este protocolo de seguridad requeriría los servicios de un protocolo de transporte confiable subyacente, como TCP o SPX. El término protocolo base hace referencia a un protocolo como TCP o SPX que es capaz de realizar comunicaciones de datos con un punto de conexión remoto. El término protocolo en capas se usa para describir un protocolo que no puede ser independiente. A continuación, una cadena de protocolos se definiría como uno o varios protocolos en capas y anclados por un protocolo base. Un protocolo base tiene el miembro ChainLen de la estructura WSAProtocol_Info establecida en BASE_PROTOCOL que se define como 1. Un protocolo en capas tiene el miembro ChainLen de la estructura WSAPROTOCOL_INFO establecida en LAYERED_PROTOCOL que se define como cero. Una cadena de protocolos tiene el miembro ChainLen de la estructura de WSAPROTOCOL_INFO establecida en mayor que 1.

Si se ejecuta correctamente, WSCUpdateProvider32 intentará alertar a todas las aplicaciones interesadas que se hayan registrado para recibir la notificación del cambio mediante una llamada a WSAProviderConfigChange.

Un usuario que inició sesión como miembro del grupo Administradores solo puede llamar a la función WSCUpdateProvider32 . Si un usuario que no es miembro del grupo Administradores llama a WSCUpdateProvider32 , se producirá un error en la llamada de función.

En el caso de los equipos que ejecutan Windows Vista o Windows Server 2008, esta función también puede producir un error debido al control de cuentas de usuario (UAC). Si un usuario que ha iniciado sesión como miembro del grupo Administradores que no sea el administrador integrado ejecuta esta función, se producirá un error en esta llamada a menos que la aplicación se haya marcado en el archivo de manifiesto con un valor requestedExecutionLevel establecido en requireAdministrator. Si la aplicación en Windows Vista o Windows Server 2008 carece de este archivo de manifiesto, un usuario que inició sesión como miembro del grupo Administradores distinto del administrador integrado debe ejecutar la aplicación en un shell mejorado como administrador integrado (administrador de runas) para que esta función se realice correctamente.

El autor de la llamada debe realizar cualquier instalación de archivos o configuración específica del proveedor de servicios.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista, Windows XP Professional x64 Edition [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008, Windows Server 2003 x64 Edition [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ws2spi.h
Library Ws2_32.lib
Archivo DLL Ws2_32.dll

Consulte también

WSAProtocol_Info

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols32

WSCInstallProvider64_32

WSCInstallProviderAndChains64_32

WSCUpdateProvider