Seções winsock em um arquivo INF de rede
Um arquivo INF para um componente NetTrans que fornece uma interface Winsock deve especificar essa dependência winsock. Esse arquivo INF deve conter uma seção Winsock-install . Para criar uma seção Winsockinstall, adicione o . Extensão winsock para o nome da seção DDInstall para o protocolo. Por exemplo, se a seção DDInstall de um protocolo for denominada Ipx, a seção Winsock-install para esse protocolo deverá ser chamada de Ipx.Winsock.
Observação
A dependência winsock foi preterida em Windows 8 e posteriores.
Uma seção winsock-install deve conter uma diretiva AddSock . A diretiva AddSock especifica uma seção nomeada pelo fornecedor que contém valores a serem adicionados à chave HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TransportDriverName\Params\Winsock do componente.
A seção nomeada pelo fornecedor referenciada pela diretiva AddSock deve conter os seguintes valores necessários:
Nome do valor | DESCRIÇÃO |
---|---|
TransportService |
Um valor REG_SZ que especifica o nome do serviço do protocolo. Isso deve ser o mesmo que o valor Ndi\Service do protocolo. Para obter mais informações, consulte Adicionando valores de Service-Related à chave Ndi. |
HelperDllName |
Um valor REG_EXPAND_SZ que especifica o caminho para a DLL do WSH (auxiliar do Windows Sockets) para o protocolo. Para obter mais informações, consulte Resumo da função de DLL do WSH. |
MaxSockAddrLength |
Um valor REG_DWORD que especifica o maior tamanho SOCKADDR válido, em bytes, para a DLL WSH |
MinSockAddrLength |
Um valor REG_DWORD que especifica o menor tamanho SOCKADDR válido, em bytes, para a DLL WSH |
Se uma ProviderId opcional para um provedor de namespace for especificada, os seguintes valores também deverão ser especificados:
Nome do valor | DESCRIÇÃO |
---|---|
ProviderId |
Um valor REG_SZ que especifica o GUID (Identificador Global exclusivo) que identifica o provedor de namespace. O GUID é usado como uma chave para todas as referências subsequentes ao provedor de namespace. Obtenha o GUID executando o utilitário uuidgen.exe. Para obter mais informações sobre esse utilitário, consulte o SDK do Microsoft Windows. |
LibraryPath |
Um valor REG_EXPAND_SZ que especifica o caminho completo para a DLL do provedor de namespace. |
DisplayString |
Uma cadeia de caracteres localizável que especifica o nome exibido para o provedor de namespace na interface do usuário. |
SupportedNameSpace |
Um valor REG_DWORD que especifica o namespace compatível com o provedor de namespace. |
Versão |
Um valor REG_DWORD opcional que especifica o número de versão do provedor de namespace. Se esse valor não for especificado, o valor padrão (1) será usado para o número de versão. |
Os seguintes valores de namespace podem ser atribuídos a SupportedNameSpace e são definidos em Winsock2.h:
Namespace | Valor |
---|---|
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 obter mais informações sobre provedores de namespace, consulte a documentação do SDK do Windows.
O exemplo a seguir mostra as seções winsock para um 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
Um arquivo INF pode remover uma dependência winsock para um protocolo, incluindo uma seção Winsock-remove . Para criar uma seção Winsock-remove , adicione o . Extensão winsock para o nome da seção Remover para o protocolo. Por exemplo, se a seção Remover de um protocolo for chamada Ipx.Remove, a seção Winsock-remove do protocolo deverá ser chamada de Ipx.Remove.Winsock.
A seção Winsock-remove contém uma diretiva DelSock que especifica uma seção nomeada pelo gravador INF. A seção inf-writer-named deve especificar o serviço de transporte a ser removido. Se uma ProviderId tiver sido registrada anteriormente para o protocolo, a seção nomeada pelo fornecedor também deverá especificar a ProviderId a ser removida.
O exemplo a seguir mostra duas seções que removem a dependência winsock de um protocolo IPX:
[Ipx.Remove.Winsock]
DelSock = Remove.IpxWinsock
[Remove.IpxWinsock]
TransportService = nwlinkipx
ProviderId = "GUID"