Secciones de Winsock en un archivo INF de red

Un archivo INF para un componente netTrans que proporciona una interfaz winsock debe especificar esta dependencia de Winsock. Este tipo de archivo INF debe contener una sección Winsock-install . Para crear una sección Winsockinstall, añada la extensión .Winsock al nombre de la sección DDInstall del protocolo. Por ejemplo, si la sección DDInstall de un protocolo se denomina Ipx, la sección Winsock-install para ese protocolo debe denominarse Ipx.Winsock.

Nota:

La dependencia winsock ha quedado en desuso en Windows 8 y versiones posteriores.

Una sección Winsock-install debe contener una directiva AddSock . La directiva AddSock especifica una sección denominada por el proveedor que contiene valores que se van a agregar a la clave transportDriverName\Params\WinsockHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ del componente.

La sección con nombre del proveedor a la que hace referencia la directiva AddSock debe contener los siguientes valores necesarios:

Nombre del valor Descripción

Servicio de Transporte

Valor REG_SZ que especifica el nombre del servicio del protocolo. Debe ser el mismo que el valor de Ndi\Service para el protocolo. Para obtener más información, vea Agregar Service-Related valores a la clave Ndi.

HelperDllName

Valor de REG_EXPAND_SZ que especifica la ruta de acceso al archivo DLL del asistente de Windows Sockets (WSH) para el protocolo. Para obtener más información, consulte Resumen de funciones dll de WSH.

MaxSockAddrLength

Valor de REG_DWORD que especifica el tamaño de SOCKADDR válido más grande, en bytes, para el archivo DLL de WSH.

MinSockAddrLength

Valor de REG_DWORD que especifica el menor tamaño válido de SOCKADDR, en bytes, para la DLL de WSH.

Si se especifica un ProviderId opcional para un proveedor de espacio de nombres, también se deben especificar los valores siguientes:

Nombre del valor Descripción

ProviderId

Valor de REG_SZ que especifica el identificador único global (GUID) que identifica el proveedor de espacios de nombres. El GUID se usa como clave para todas las referencias posteriores al espacio de nombres del proveedor. Obtenga el GUID ejecutando la utilidad uuidgen.exe. Para obtener más información sobre esta utilidad, consulte Microsoft Windows SDK.

LibraryPath

Valor de REG_EXPAND_SZ que especifica la ruta de acceso completa al archivo DLL del proveedor de espacios de nombres.

DisplayString

Cadena localizable que especifica el nombre que se muestra para el proveedor del espacio de nombres en la interfaz de usuario.

SupportedNameSpace

Valor REG_DWORD que especifica el namespace soportado por el proveedor de namespaces.

Versión

Un valor opcional REG_DWORD que especifica el número de versión del proveedor del espacio de nombres. Si no se especifica este valor, se usa el valor predeterminado (1) para el número de versión.

Los siguientes valores de espacio de nombres se pueden asignar a SupportedNameSpace y se definen en Winsock2.h:

Namespace Importancia

NS_ALL

0

NS_SAP

1

NS_NDS

2

NS_PEER_BROWSE

3

NS_TCPIP_LOCAL

10

NS_TCPIP_HOSTS

11

NS_DNS

12

NS_NETBT

13

NS_WINS

14

NS_NBP

20

NS_MS

30

NS_STDA

31

NS_CAIRO

32

NS_X500

40

NS_NIS

41

NS_WRQ

50

Para obtener más información sobre los proveedores de espacios de nombres, consulte la documentación de Windows SDK.

En el ejemplo siguiente se muestran secciones de Winsock para un protocolo IPX:

[Ipx.Winsock]
AddSock = Install.IpxWinsock
 
[Install.IpxWinsock]
TransportService = nwlinkipx
HelperDllName = "%%SystemRoot%%\System32\wshisn.dll"
MaxSockAddrLength = 0x10
MinSockAddrLength = 0xe
ProviderId = "GUID"
LibraryPath = "%SystemRoot%\\System32\\nwprovau.dll"
DisplayString = %NwlnkIpx_Desc%
SupportedNameSpace = 1
Version = 2

Un archivo INF puede quitar una dependencia de Winsock para un protocolo mediante la inclusión de una sección Winsock-remove . Para crear una sección Winsock-remove, agregue la extensión .Winsock al nombre de la sección Quitar para el protocolo. Por ejemplo, si la sección Quitar de un protocolo se denomina Ipx.Remove, la sección Winsock-remove del protocolo debe denominarse Ipx.Remove.Winsock.

La sección Winsock-remove contiene una directiva DelSock que especifica una sección con nombre inf-writer. La sección INF-writer-named debe especificar el servicio de transporte que se va a quitar. Si un ProviderId se registró anteriormente para el protocolo, la sección con nombre del proveedor también debe especificar providerId que se va a quitar.

En el ejemplo siguiente se muestran dos secciones que quitan la dependencia winsock de un protocolo IPX:

[Ipx.Remove.Winsock]
DelSock = Remove.IpxWinsock
 
[Remove.IpxWinsock]
TransportService = nwlinkipx
ProviderId = "GUID"