Partilhar via


Instalando um provedor de serviços SAN

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

Um provedor de serviços SAN que é exposto indiretamente a aplicativos por meio da opção Windows Sockets deve definir o sinalizador PFL_HIDDEN no membro dwProviderFlags da estrutura WSAPROTOCOL_INFOW do provedor de serviços SAN. Para instalar o provedor de serviços SAN no sistema operacional, o mecanismo de instalação do provedor de serviços SAN passa essa estrutura em uma chamada para a função 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 detectado pelo comutador do Windows Sockets como um provedor de serviços base do Windows Sockets:

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

Esse 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 SAN com a opção Windows Sockets. Esse membro contém o GUID (identificador global exclusivo) que o fornecedor atribuiu ao provedor de serviços SAN.

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

  • Nome da marca registrada do produto

  • Valor numérico exclusivo

  • Representação textual do GUID

Para registrar um provedor de serviços SAN

  1. A opção chama a função WSAProviderConfigChange para detectar eventos de instalação e remoção do provedor do Windows Sockets.

  2. Depois que um novo provedor de serviços do Windows Sockets é instalado, a opção chama a função WSCEnumProtocols para consultar o catálogo do Windows Sockets e a lista de provedores de serviços SAN no registro 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 a opção detectar um novo provedor de serviços SAN, a opção inicializará esse provedor de serviços, conforme descrito em Inicializando um provedor de serviços SAN.

  4. A opção 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 associados 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
    Associa o soquete ao endereço IP curinga

    Wsplisten
    Define o soquete para confirmar e enfileirar solicitações de conexão de entrada até que seja aceito pela opção

    Nota A partir do Windows Vista, o endereço IP curinga 0.0.0.0 não está disponível. Também começando com o Windows Vista, se a chave do Registro IPAutoconfigurationEnabled estiver definida como um valor de 0, a atribuição automática de endereço IP será desabilitada 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 estar 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