Поделиться через


Разделы Winsock в INF-файле сети

Inf-файл для компонента NetTrans , который предоставляет интерфейс Winsock, должен указывать эту зависимость Winsock. Такой INF-файл должен содержать раздел Winsock-install . Чтобы создать раздел Winsockinstall, добавьте . Расширение Winsock для имени раздела DDInstall для протокола. Например, если раздел DDInstall для протокола называется Ipx, раздел Winsock-install для этого протокола должен называться Ipx.Winsock.

Примечание

Зависимость Winsock не рекомендуется использовать в Windows 8 и более поздних версиях.

Раздел Winsock-install должен содержать директиву AddSock . Директива AddSock задает раздел с именем поставщика, который содержит значения, добавляемые в ключHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransportDriverName\Params\Winsock компонента.

Раздел с именем поставщика, на который ссылается директива AddSock, должен содержать следующие обязательные значения:

Имя значения Description

TransportService

Значение REG_SZ, указывающее имя службы протокола. Это значение должно совпадать со значением Ndi\Service для протокола. Дополнительные сведения см. в разделе Добавление значений Service-Related в ключ Ndi.

HelperDllName

Значение REG_EXPAND_SZ, указывающее путь к библиотеке dll вспомогательной библиотеки windows Sockets (WSH) для протокола. Дополнительные сведения см. в разделе WSH DLL Function Summary.

MaxSockAddrLength

Значение REG_DWORD, указывающее наибольший допустимый размер SOCKADDR (в байтах) для библиотеки DLL WSH.

MinSockAddrLength

Значение REG_DWORD, указывающее наименьший допустимый размер SOCKADDR (в байтах) для библиотеки DLL WSH.

Если для поставщика пространства имен указан необязательный Идентификатор поставщика , необходимо также указать следующие значения:

Имя значения Description

ProviderId

Значение REG_SZ, указывающее глобальный уникальный идентификатор (GUID), определяющий поставщика пространства имен. Guid используется в качестве ключа для всех последующих ссылок на поставщик пространства имен. Получите GUID, запустив служебную программу uuidgen.exe. Дополнительные сведения об этой служебной программе см. в 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.

В следующем примере показаны разделы Winsock для протокола 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

INF-файл может удалить зависимость Winsock для протокола, включив раздел Winsock-remove . Чтобы создать раздел Winsock-remove , добавьте . Расширение Winsock для удаления имени раздела для протокола. Например, если раздел Remove для протокола называется Ipx.Remove, раздел Winsock-remove для протокола должен иметь имя Ipx.Remove.Winsock.

Раздел Winsock-remove содержит директиву DelSock , которая указывает раздел с именем inf-writer. В разделе с именем inf-writer необходимо указать удаляемую службу транспорта. Если идентификатор поставщика был ранее зарегистрирован для протокола, в разделе с именем поставщика также должен быть указан Идентификатор поставщика для удаления.

В следующем примере показаны два раздела, которые удаляют зависимость Winsock для протокола IPX:

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