Compartir a través de


función WSCInstallProvider64_32 (ws2spi.h)

[**WSCInstallProvider64_32** ya no está disponible para su uso en Windows Vista. En su lugar, use WSCInstallProvider o WSCInstallProviderAndChains.]

La función WSCInstallProvider64_32 instala el proveedor de servicios de transporte especificado en las bases de datos de configuración del sistema de 32 y 64 bits en un equipo de 64 bits.

Sintaxis

int WSCInstallProvider64_32(
  [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 incrustadas (como %SystemRoot%). Estas cadenas de entorno se expanden cuando el Ws2_32.dll posteriormente debe cargar 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 define un protocolo, una familia de direcciones y un tipo de socket admitido 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 WSCInstallProvider64_32 se realiza correctamente, devuelve cero. De lo contrario, devuelve SOCKET_ERROR y se devuelve un código de error específico en el parámetro 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.
WSAENOBUFS
No se pudo asignar memoria para los búferes.
WSANO_RECOVERY
Error irrecuperable. Este error se devuelve en varias condiciones, incluido lo siguiente: el proveedor ya está instalado, el usuario carece de los privilegios administrativos necesarios para escribir en el registro winsock o se produjo un error al crear o instalar una entrada de catálogo.
WSASYSCALLFAILURE
No se pudo realizar una llamada del sistema que nunca debería producir un error.
WSA_NOT_ENOUGH_MEMORY
No había suficiente memoria disponible. Este error se devuelve cuando no hay memoria suficiente para asignar una nueva entrada de catálogo.

Comentarios

WSCInstallProvider64_32 es una versión básica de la función WSCInstallProviderAndChains64_32 que solo instala un único proveedor de servicios de transporte. WSCInstallProvider64_32 se puede usar para instalar un protocolo base, un protocolo en capas o una cadena de protocolos. Si se está instalando un proveedor de servicios en capas, se debe usar WSCInstallProviderAndChains64_32 porque esta función permite instalar un protocolo superpuesta y una o varias cadenas de protocolos con una sola llamada de función. Para realizar el mismo trabajo mediante WSCInstallProvider64_32 requeriría varias llamadas de función para instalar cada componente del proveedor de servicios.

Windows Sockets (Winsock) 2 admite la noción de un protocolo superpuesta. Un protocolo en capas es aquel 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 una capa de seguridad que agrega un protocolo al proceso de establecimiento de la 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 totalmente 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 superpuestas 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 superpuesta 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 WSAPROTOCOL_INFO establecida en mayor que 1.

WSCInstallProvider64_32 es la versión de 64 bits de WSCInstallProvider que instala el proveedor en los catálogos de 32 y 64 bits en plataformas de 64 bits. Es decir, en plataformas de 64 bits, se mantienen dos catálogos de Winsock, y los procesos de 32 y 64 bits pueden cargar el proveedor de transporte instalado con esta función. En plataformas de 64 bits, WSCInstallProvider solo se instala en el catálogo winsock de 64 bits.

En un equipo de 64 bits, todas las llamadas no diseñadas específicamente para 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 WSCInstallProvider64_32 para funcionar tanto en el catálogo de 32 bits como en el catálogo de 64 bits, conservando la compatibilidad. Las definiciones y la semántica de las llamadas específicas de 32 bits son las mismas que sus equivalentes nativos.

Esta rutina crea la información de configuración común necesaria de Winsock 2 para el proveedor especificado. Se aplica a los protocolos base, los protocolos en capas y las cadenas de protocolo.

El parámetro lpProtocolInfoList contiene una lista de entradas de protocolo que se van a instalar. Los autores de llamadas de WSCInstallProvider64_32 son responsables de configurar las entradas de protocolo adecuadas. El parámetro lpProtocolInfoList no debe ser NULL.

Una vez completada correctamente esta rutina, WSAEnumProtocols devolverá la información del protocolo proporcionada en lpProtocols, WSCEnumProtocols o WSCEnumProtocols32. Tenga en cuenta que, en Windows, solo las instancias de la Ws2_32.dll creadas mediante una llamada a WSAStartup después de completar correctamente esta función incluirán las nuevas entradas en WSAEnumProtocols, WSCEnumProtocols y WSCEnumProtocols32.

Nota La función WSAEnumProtocols no enumera una entrada de protocolo superpuesta mientras WSCEnumProtocols y WSCEnumProtocols32 sí lo hacen.

 

Si se ejecuta correctamente, WSCInstallProvider64_32 intentará alertar a todas las aplicaciones interesadas que se hayan registrado para notificar el cambio mediante una llamada a WSAProviderConfigChange.

Un usuario que inició sesión como miembro del grupo Administradores solo puede llamar a la función WSCInstallProvider64_32 . Si un usuario llama a WSCInstallProvider64_32 que no es miembro del grupo Administradores, se producirá un error en la llamada de función y se devolverá WSANO_RECOVERY en el parámetro lpErrno . 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 inicia sesión como miembro del grupo Administradores que no sea el administrador integrado, esta llamada producirá un error 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 ha iniciado sesión como miembro del grupo Administradores que no sea el 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.

La aplicación que realiza la llamada debe realizar cualquier instalación de archivos o configuración específica del proveedor de servicios.

Si se usa la función WSCInstallProvider o WSCInstallProviderAndChains , se debe llamar a la función una vez para instalar el proveedor en el catálogo de 32 bits y una vez para instalar el proveedor en el catálogo de 64 bits en una plataforma de 64 bits.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP Professional x64 Edition [solo aplicaciones de escritorio]
Servidor mínimo compatible 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

LoadLibrary

Configuración e instalación de transporte

Proveedores de servicios de transporte

WSAEnumProtocols

WSAProviderConfigChange

WSAStartup

WSCDeinstallProvider32

WSCEnumProtocols

WSCEnumProtocols32

WSCInstallProvider

WSCInstallProviderAndChains

WSCInstallProviderAndChains64_32