Разделы 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"