Funções de Serviço de Diretório (AD DS)

As funções de serviço de diretório fornecem um utilitário para localizar um controlador de domínio (DC) em um domínio do Windows NT ou Windows 2000. A arquitetura interage com clientes, bem como servidores em todas as versões do Windows NT e Windows 2000. As funções a seguir permitem que os desenvolvedores trabalhem com o controlador de domínio e a associação de domínio no serviço de diretório:

O localizador de DC, DsGetDcName, é implementado pelo serviço Netlogon. Cada controlador de domínio registra seu nome DNS no servidor DNS e seu nome NetBIOS usando um mecanismo específico de transporte, por exemplo, no WINS. O localizador de DC procura o nome e, em seguida, envia um datagrama para, ou pings, o DC que registrou o nome. Para nomes de domínio NetBIOS, o datagrama é uma mensagem mailslot. Para nomes de domínio DNS, o datagrama é uma pesquisa UDP LDAP. Cada um desses CDs responde indicando que está operacional no momento. O primeiro controlador de domínio a responder é devolvido ao chamador.

O DC retornado é armazenado em cache, para que os chamadores subsequentes não precisem repetir o algoritmo anterior e para incentivar todos os chamadores a usar esse mesmo DC. Isso garante que um único cliente tenha uma exibição consistente do conteúdo do DC.

Ao procurar um DC por nome de domínio DNS, o localizador de DC tenta encontrar um DC no site "mais próximo". Cada controlador de domínio registra registros DNS adicionais indicando em qual site o controlador de domínio está e quais sites o controlador de domínio inclui. O localizador de DC primeiro procura esse registro DNS específico do site antes de procurar o registro DNS que não é específico do site, preferindo assim um DC nesse site. Quando o localizador de DC envia um datagrama para o DC, o DC procura o endereço IP do cliente no contêiner Configuração/Sites/Sub-rede do DS para localizar um objeto de sub-rede. A propriedade siteObject do objeto de sub-rede define o nome do site que contém o cliente. O controlador de domínio responde ao ping com o nome do site que contém o cliente, juntamente com um indicador de se esse controlador de domínio cobre esse site. Se o controlador de domínio não incluir esse site e o localizador de controlador de domínio ainda não tiver tentado localizar um controlador de domínio nesse site, o localizador de controlador de domínio tentará novamente localizar um controlador de domínio no site.

Para localizar o nome do site que contém o cliente, use a função DsGetSiteName. Os nomes dos objetos no contêiner Configuração/Sites/Sub-rede devem ser nomes de sub-rede válidos. A função DsValidateSubnetName indica se um nome de sub-rede especificado é válido.