网络 INF 文件中的 Winsock 节

提供 Winsock 接口的 NetTrans 组件的 INF 文件必须指定此 Winsock 依赖项。 此类 INF 文件必须包含 Winsock-install 部分。 若要创建 Winsockinstall 部分,请添加 。协议的 DDInstall 节名称的 Winsock 扩展。 例如,如果协议的 DDInstall 节名为 Ipx,则该协议的 Winsock-install 节必须命名为 Ipx.Winsock。

注意

Windows 8 及更高版本中已弃用 Winsock 依赖项。

Winsock-install 节必须包含 AddSock 指令。 AddSock 指令指定一个以供应商命名的部分,该节包含要添加到组件的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransportDriverName\Params\Winsock 键的值。

AddSock 指令引用的供应商命名节必须包含以下必需值:

值名称 说明

TransportService

一个REG_SZ值,该值指定协议的服务名称。 这必须与协议的 Ndi\Service 值相同。 有关详细信息,请参阅 向 Ndi 键添加Service-Related值

HelperDllName

一个 REG_EXPAND_SZ 值,该值指定协议的 Windows 套接字帮助程序 (WSH) DLL 的路径。 有关详细信息,请参阅 WSH DLL 函数摘要

MaxSockAddrLength

一个REG_DWORD值,该值指定 WSH DLL 的最大有效 SOCKADDR 大小(以字节为单位)

MinSockAddrLength

一个 REG_DWORD 值,该值指定 WSH DLL 的最小有效 SOCKADDR 大小(以字节为单位)

如果为命名空间提供程序指定了可选的 ProviderId ,则还必须指定以下值:

值名称 说明

ProviderId

一个 REG_SZ 值,该值指定标识命名空间提供程序的全局唯一标识符 (GUID) 。 GUID 用作对命名空间提供程序的所有后续引用的键。 通过运行 uuidgen.exe 实用工具获取 GUID。 有关此实用工具的详细信息,请参阅Microsoft Windows SDK。

LibraryPath

一个REG_EXPAND_SZ值,该值指定命名空间提供程序 DLL 的完整路径。

DisplayString

一个可本地化的字符串,指定在用户界面中为命名空间提供程序显示的名称。

SupportedNameSpace

REG_DWORD值,该值指定命名空间提供程序支持的命名空间。

版本

可选的 REG_DWORD 值,该值指定命名空间提供程序的版本号。 如果未指定此值,则版本号使用默认值 (1) 。

以下命名空间值可以分配给 SupportedNameSpace,并在 Winsock2.h 中定义:

命名空间

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

有关命名空间提供程序的详细信息,请参阅 Windows SDK 文档

以下示例演示 IPX 协议的 Winsock 部分:

[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

INF 文件可以通过包含 Winsock-remove 节来删除协议 的 Winsock 依赖项。 若要创建 Winsock-remove 部分,请添加 。Winsock 扩展为协议的 Remove 节名称。 例如,如果协议的 Remove 节名为 Ipx.Remove,则协议的 Winsock-remove 部分必须命名为 Ipx.Remove.Winsock。

Winsock-remove 部分包含一个 DelSock 指令,该指令指定一个以 INF 编写器命名的部分。 INF 编写器命名部分必须指定要删除的传输服务。 如果以前为协议注册了 ProviderId ,则供应商命名部分还必须指定要删除的 ProviderId

以下示例演示删除 IPX 协议的 Winsock 依赖项的两个部分:

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