网络 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"