Função LsaEnumerateTrustedDomains (ntsecapi.h)

A função LsaEnumerateTrustedDomains recupera os nomes e SIDs de domínios confiáveis para autenticar credenciais de logon. LsaEnumerateTrustedDomains destina-se ao uso em sistemas que executam Windows NT 4.0 ou versões anteriores do Windows NT. Use DsEnumerateDomainTrusts para qualquer outra finalidade de enumeração de confiança. Especificamente, LsaEnumerateTrustedDomains só poderá ser usado se um ou mais dos seguintes itens forem verdadeiros:

  • O sistema de chamada está executando Windows NT 4.0 ou uma versão anterior do Windows NT.
  • O sistema de destino (especificado usando o parâmetro PolicyHandle) é um controlador de domínio que executa Windows NT 4.0 ou uma versão anterior.
  • O sistema de chamada está executando Windows NT versão 4.0 ou anterior e não é um controlador de domínio e o sistema de destino é um controlador de domínio no domínio do sistema de chamada. O sistema de destino pode estar executando qualquer versão do Windows NT, incluindo Windows 2000 e Windows XP.

Sintaxe

NTSTATUS LsaEnumerateTrustedDomains(
  [in]  LSA_HANDLE              PolicyHandle,
  [in]  PLSA_ENUMERATION_HANDLE EnumerationContext,
  [out] PVOID                   *Buffer,
  [in]  ULONG                   PreferedMaximumLength,
  [out] PULONG                  CountReturned
);

Parâmetros

[in] PolicyHandle

Um identificador para um objeto Policy . O identificador deve ter o acesso de POLICY_VIEW_LOCAL_INFORMATION correto. Para obter mais informações, consulte Abrindo um identificador de objeto de política.

[in] EnumerationContext

Ponteiro para um identificador de enumeração que permite que você faça várias chamadas para enumerar todos os domínios confiáveis. Na primeira chamada para LsaEnumerateTrustedDomains, EnumerationContext deve apontar para uma variável que foi inicializada como zero. Em chamadas subsequentes para LsaEnumerateTrustedDomains, EnumerationContext deve apontar para o identificador de enumeração retornado pela chamada anterior.

[out] Buffer

Recebe um ponteiro para uma matriz de estruturas de LSA_TRUST_INFORMATION que contêm os nomes e SIDs de um ou mais domínios confiáveis.

Quando você não precisar mais das informações, passe o ponteiro retornado para LsaFreeMemory.

[in] PreferedMaximumLength

Especifica o tamanho máximo preferencial, em bytes, do buffer retornado. Essas informações são aproximadas; o número real de bytes retornados pode ser maior que esse valor.

[out] CountReturned

Ponteiro para uma variável que recebe o número de elementos retornados no parâmetro Buffer .

Retornar valor

Se a função for bem-sucedida, o valor retornado será um dos seguintes valores NTSTATUS.

Valor Descrição
STATUS_SUCCESS
A enumeração foi concluída com êxito.
STATUS_MORE_ENTRIES
A chamada foi bem-sucedida, mas há domínios mais confiáveis a serem enumerados. Chame LsaEnumerateTrustedDomains novamente, passando o valor retornado no parâmetro EnumerationContext .
STATUS_NO_MORE_ENTRIES
Não há mais domínios confiáveis para enumerar.
 

Se a função falhar, o valor retornado será um código NTSTATUS. Para obter mais informações, consulte Valores retornados da função de política LSA.

Você pode usar a função LsaNtStatusToWinError para converter o código NTSTATUS em um código de erro do Windows.

Comentários

Para domínios com controladores de domínio que executam apenas Windows NT 4.0 ou versões anteriores do Windows NT, LsaEnumerateTrustedDomains retorna uma lista de todos os domínios confiáveis. Em versões de Windows NT até e incluindo a versão 4.0, todos os domínios confiáveis são diretamente confiáveis.

Nos domínios do Windows XP e do Windows 2000 no modo misto, os controladores de domínio podem estar executando o Windows XP, o Windows 2000 ou o Windows NT. Portanto, em domínios de modo misto, alguns domínios confiáveis são diretamente confiáveis e outros são indiretamente confiáveis. Ao enumerar os domínios confiáveis de um sistema em um domínio de modo misto, LsaEnumerateTrustedDomains retorna apenas domínios diretamente confiáveis.

Por outro lado, os domínios do Windows XP e do Windows 2000 no modo nativo contêm apenas controladores de domínio do Windows 2000, embora possa haver membros no domínio executando Windows NT 4.0 ou versões anteriores. Ao enumerar os domínios confiáveis de um sistema em um domínio nativo do Windows XP e do Windows 2000, LsaEnumerateTrustedDomains retorna domínios diretamente confiáveis e indiretamente confiáveis.

Recuperar todas as informações de confiança pode exigir mais de uma única chamada LsaEnumerateTrustedDomains . Você pode usar o parâmetro EnumerationContext para fazer várias chamadas, da seguinte maneira: Na primeira chamada, defina a variável apontada por EnumerationContext como zero. Se LsaEnumerateTrustedDomains retornar STATUS_SUCCESS ou STATUS_MORE_ENTRIES, chame a função novamente, passando o valor EnumerationContext retornado pela chamada anterior. A enumeração é concluída quando a função retorna STATUS_NO_MORE_ENTRIES.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ntsecapi.h
Biblioteca Advapi32.lib
DLL Advapi32.dll

Confira também

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy