Partilhar via


Configuração e Instalação de Resolução de Nomes

Para que um provedor de namespace seja acessível através do Windows Sockets, ele deve ser instalado corretamente no sistema e registrado no Windows Sockets. Quando um provedor de namespace é instalado invocando o programa de instalação de um fornecedor, as informações de configuração devem ser adicionadas a um banco de dados de configuração para fornecer as Ws2_32.dll informações necessárias sobre o provedor de serviços. O Ws2_32.dll exporta WSCInstallNameSpace para o programa de instalação do fornecedor usar. Esta função é usada para fornecer informações relevantes sobre o provedor de serviços a ser instalado. Estas informações incluem:

  • Nome do provedor — Uma cadeia de caracteres que representa o provedor para exibição no Painel de Controle.
  • Versão do provedor — A versão deste provedor.
  • Caminho do provedor — Um nome de caminho para a DLL do provedor.
  • Namespace — O namespace suportado pelo provedor.
  • GUID do provedor — Um número exclusivo fornecido pelo fornecedor que representa essa combinação provedor/namespace. Isso é usado como uma chave para todas as referências subsequentes a esse provedor e para desinstalar. Esses valores são criados usando o utilitário Uuidgen.exe.
  • Armazena todos os sinalizadores — um sinalizador que indica se esse provedor de namespace será responsável por reter todas as informações de esquema de classe de serviço para todas as classes de serviço. Se esse provedor existir, o Ws2_32.dll não precisará consultar cada provedor de namespace individual para obter essas informações.

No Windows Vista e versões posteriores, é fornecida uma função deWSCInstallNameSpaceEx32 deaprimorada que permite que o provedor de namespace passe um blob adicional de dados específicos para o namespace.

Em plataformas de 64 bits, funções de WSCInstallNameSpace32 e WSCInstallNameSpaceEx32 são fornecidas para instalar um namespace no catálogo de 32 bits.

O Ws2_32.dll também fornece uma função, WSCUnInstallNameSpace, para o programa de desinstalação de um fornecedor para remover todas as informações relevantes do banco de dados de configuração. A localização exata e o formato dessas informações de configuração são privados para o Ws2_32.dlle só podem ser manipulados pelas funções acima mencionadas.

Em plataformas de 64 bits, uma função desemelhanteWSCInstallNameSpace32 é fornecida para desinstalar um namespace no catálogo de 32 bits.

A qualquer momento, um provedor de namespace é considerado ativo ou inativo, com essa configuração controlada por meio doWSCEnableNSProvider e funções de WSCEnableNSProvider32. Os provedores de namespace inativos continuam a aparecer quando enumerados (usando as WSAEnumNameSpaceProviders, WSAEnumNameSpaceProvidersEx, WSCEnumNameSpaceProviders32e WSCEnumNameSpaceProvidersEx32 funções), mas o Ws2_32.dll não encaminhará nenhuma consulta ou operação de registro de serviço para esses provedores. Esse recurso pode ser útil em situações em que mais de um dos provedores de namespace instalados podem oferecer suporte a um determinado namespace.

Quando vários provedores de namespace são referenciados em uma única função de API, a ordem na qual a ordem em que as consultas e as operações de registro são roteadas para provedores de namespace não é especificada. A ordem não está relacionada à ordem na qual os provedores de namespace são instalados. Há duas maneiras de controlar quais provedores de namespace são usados para resolver uma consulta de nome. Primeiro, o WSCEnableNSProvider e funções de WSCEnableNSProvider32 podem ser usados para habilitar e desabilitar namespaces de forma persistente em todo o computador. Em segundo lugar, os aplicativos podem direcionar uma consulta individual para um provedor específico, especificando o GUID de identificação desse provedor como parte da consulta.