Secciones de Winsock en un archivo INF de red
Un archivo INF para un componente de 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, agregue . Extensión winsock al nombre de la sección DDInstall para el protocolo. Por ejemplo, si la sección DDInstall de un protocolo se denomina Ipx, la sección Winsock-install de 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 con nombre de proveedor que contiene valores que se van a agregar a la clave transportDriverName\Params\Winsock del componenteHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\.
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 |
---|---|
TransportService |
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 valores de Service-Related a la clave Ndi. |
HelperDllName |
Valor 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, vea Resumen de la función 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 tamaño de SOCKADDR válido más pequeño, en bytes, para el archivo DLL de WSH. |
Si se especifica un ProviderId opcional para un proveedor de espacios 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 proveedor de espacios de nombres. Para obtener el GUID, ejecute la utilidad uuidgen.exe. Para obtener más información sobre esta utilidad, consulte el Microsoft Windows SDK. |
LibraryPath |
Valor 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 de espacios de nombres en la interfaz de usuario. |
SupportedNameSpace |
Valor de REG_DWORD que especifica el espacio de nombres admitido por el proveedor de espacios de nombres. |
Versión |
Valor opcional REG_DWORD que especifica el número de versión del proveedor de espacios 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:
Espacio de nombres | Value |
---|---|
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 . Extensión Winsock en el nombre de la sección Remove 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 el 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"