Partilhar via


Instalando um provedor de serviços SAN

Um fornecedor de serviços SAN é normalmente instalado como um fornecedor de serviços base do Windows Sockets que interage com o switch do Windows Sockets. Embora um provedor de serviços de SAN possa ser instalado para uso direto por um aplicativo, a tecnologia Windows Sockets Direct não oferece suporte ao uso de um provedor de serviços de SAN dessa maneira. Um provedor de serviços de SAN instalado para uso direto por um aplicativo exporta sua família de endereços nativos e características de protocolo em vez das do protocolo TCP/IP.

Um fornecedor de serviços de SAN que está indiretamente exposto a aplicações através do switch Windows Sockets deve definir o flag PFL_HIDDEN no membro dwProviderFlags da estrutura WSAPROTOCOL_INFOW do fornecedor de serviços de SAN. Para instalar o fornecedor de serviços de SAN no sistema operativo, o mecanismo de instalação do fornecedor de serviços de SAN passa essa estrutura numa chamada para a função de WSCInstallProvider. O mecanismo de instalação do provedor de serviços SAN pode ser, por exemplo, um programa de instalação ou uma função exportada pelo provedor de serviços SAN e chamada por uma diretiva de arquivo INF.

O mecanismo de instalação do provedor de serviços SAN deve adicionar um valor do tipo REG_BINARY à seguinte chave no Registro antes que o provedor de serviços SAN possa ser detetado pelo switch Windows Sockets como um provedor de serviços base do Windows Sockets:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock\
Parameters\TCP on SAN

Este valor contém a representação binária do valor no membro ProviderId da estrutura WSAPROTOCOL_INFOW. Esse valor registra um provedor de serviços de SAN com o switch Windows Sockets. Esse membro contém o GUID (identificador global exclusivo) que o fornecedor atribuiu ao provedor de serviços de SAN.

O fornecedor também pode atribuir um nome exclusivo que represente esse GUID, por exemplo:

  • Nome de marca comercial do produto

  • Valor numérico único

  • Representação textual do GUID

Para registrar um provedor de serviços de SAN

  1. O switch chama a função WSAProviderConfigChange para detetar eventos de instalação e remoção do provedor Windows Sockets.

  2. Depois de um novo provedor de serviços Windows Sockets ser instalado, o switch chama a função WSCEnumProtocols para consultar o catálogo do Windows Sockets e a lista no registo de provedores de serviços de SAN para determinar se o novo provedor de serviços controla uma SAN. Para obter mais informações sobre WSCEnumProtocols, consulte o SDK do Windows.

  3. Se o switch detetar um novo provedor de serviços de SAN, ele inicializará esse provedor de serviços conforme descrito em Inicializando um provedor de serviços de SAN.

  4. O switch também chama as seguintes funções do provedor de serviços SAN recém-instalado depois que o provedor de serviços SAN é inicializado para atender a quaisquer soquetes de escuta existentes vinculados ao endereço IP curinga (0.0.0.0) (o endereço IP curinga implica que o provedor de serviços SAN deve aceitar solicitações de conexão de entrada de todas as NICs que controla):

    WSPSocket
    Cria um soquete

    WSPBind
    Vincula o soquete ao endereço IP curinga

    WSPListen
    Define o soquete para reconhecer e enfileirar solicitações de conexão de entrada até que sejam aceitos pelo switch

    Observação A partir do Windows Vista, o endereço IP coringa 0.0.0.0 não está disponível. Também a partir do Windows Vista, se a chave de registo IPAutoconfigurationEnabled estiver definida como um valor 0, a atribuição automática de endereços IP será desativada e nenhum endereço IP será atribuído. Nesse caso, a ferramenta de linha de comando ipconfig não exibirá um endereço IP. Se a chave for definida como um valor diferente de zero, um endereço IP será atribuído automaticamente. Essa chave pode ser localizada nos seguintes caminhos no registro:

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\IPAutoconfigurationEnabled

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\Interfaces\GUID\IPAutoconfigurationEnabled