Instalación de un proveedor de servicios SAN
Normalmente, un proveedor de servicios SAN se instala como un proveedor de servicios base de Windows Sockets que interactúa con el conmutador de Windows Sockets. Aunque un proveedor de servicios SAN se puede instalar para su uso directo por parte de una aplicación en su lugar, la tecnología Windows Sockets Direct no admite el uso de un proveedor de servicios SAN de esta manera. Un proveedor de servicios SAN instalado para su uso directo por una aplicación exporta sus características de protocolo y familia de direcciones nativas en lugar de las del protocolo TCP/IP.
Un proveedor de servicios SAN que se expone indirectamente a las aplicaciones a través del conmutador de Windows Sockets debe establecer la marca PFL_HIDDEN en el miembro dwProviderFlags de la estructura WSAPROTOCOL_INFOW del proveedor de servicios SAN. Para instalar el proveedor de servicios SAN en el sistema operativo, el mecanismo de instalación del proveedor de servicios SAN pasa esta estructura en una llamada a la función WSCInstallProvider . El mecanismo de instalación del proveedor de servicios SAN puede ser, por ejemplo, un programa de instalación o una función exportada por el proveedor de servicios SAN y llamado por una directiva de archivo INF.
El mecanismo de instalación del proveedor de servicios SAN debe agregar un valor de tipo REG_BINARY a la siguiente clave del Registro para que el conmutador de Windows Sockets pueda detectarlo como proveedor de servicios base de Windows Sockets:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock\
Parameters\TCP on SAN
Este valor contiene la representación binaria del valor en el miembro ProviderId de la estructura WSAPROTOCOL_INFOW. Este valor registra un proveedor de servicios SAN con el modificador Windows Sockets. Este miembro contiene el identificador único global (GUID) que el proveedor asignó al proveedor de servicios SAN.
El proveedor también puede asignar un nombre único que represente este GUID, por ejemplo:
Nombre de marca comercial del producto
Valor numérico único
Representación textual del GUID
Para registrar un proveedor de servicios SAN
El modificador llama a la función WSAProviderConfigChange para detectar eventos de eliminación y instalación del proveedor de Windows Sockets.
Una vez instalado un nuevo proveedor de servicios de Windows Sockets, el modificador llama a la función WSCEnumProtocols para consultar el catálogo de Windows Sockets y la lista de proveedores de servicios SAN en el registro para determinar si el nuevo proveedor de servicios controla una SAN. Para obtener más información sobre WSCEnumProtocols, consulte Windows SDK.
Si el modificador detecta un nuevo proveedor de servicios SAN, el modificador inicializa ese proveedor de servicios como se describe en Inicialización de un proveedor de servicios SAN.
El modificador también llama a las siguientes funciones del proveedor de servicios SAN recién instalado después de inicializar el proveedor de servicios SAN para atender los sockets de escucha existentes enlazados a la dirección IP de caracteres comodín (0.0.0.0) (la dirección IP con caracteres comodín implica que el proveedor de servicios SAN debe aceptar solicitudes de conexión entrantes de todas las NIC que controla):
WSPBind
Enlaza el socket a la dirección IP con caracteres comodín.WSPListen
Establece el socket para confirmar y poner en cola las solicitudes de conexión entrantes hasta que el modificador lo acepte.Nota A partir de Windows Vista, la dirección IP con caracteres comodín 0.0.0.0 no está disponible. También a partir de Windows Vista, si la clave del Registro IPAutoconfigurationEnabled se establece en un valor de 0, se deshabilita la asignación automática de direcciones IP y no se asigna ninguna dirección IP. En este caso, la herramienta de línea de comandos ipconfig no mostrará una dirección IP. Si la clave se establece en un valor distinto de cero, se asigna automáticamente una dirección IP. Esta clave se puede encontrar en las siguientes rutas de acceso del Registro:
HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\IPAutoconfigurationEnabled
HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\Interfaces\GUID\IPAutoconfigurationEnabled