Función LsaEnumerateTrustedDomains (ntsecapi.h)

La función LsaEnumerateTrustedDomains recupera los nombres y los SID de dominios de confianza para autenticar las credenciales de inicio de sesión. LsaEnumerateTrustedDomains está pensado para su uso en sistemas que ejecutan Windows NT 4.0 o versiones anteriores de Windows NT. Use DsEnumerateDomainTrusts para cualquier otro propósito de enumeración de confianza. En concreto, LsaEnumerateTrustedDomains solo se puede usar si se cumple una o varias de las siguientes condiciones:

  • El sistema de llamada ejecuta Windows NT 4.0 o una versión anterior de Windows NT.
  • El sistema de destino (especificado mediante el parámetro PolicyHandle ), es un controlador de dominio que ejecuta Windows NT 4.0 o una versión anterior.
  • El sistema de llamada ejecuta Windows NT 4.0 o una versión anterior y no es un controlador de dominio y el sistema de destino es un controlador de dominio en el dominio del sistema que realiza la llamada. El sistema de destino puede ejecutar cualquier versión de Windows NT, incluidas Windows 2000 y Windows XP.

Sintaxis

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

Parámetros

[in] PolicyHandle

Identificador de un objeto Policy . El identificador debe tener el derecho de acceso POLICY_VIEW_LOCAL_INFORMATION. Para obtener más información, vea Apertura de un identificador de objeto de directiva.

[in] EnumerationContext

Puntero a un identificador de enumeración que permite realizar varias llamadas para enumerar todos los dominios de confianza. En la primera llamada a LsaEnumerateTrustedDomains, EnumerationContext debe apuntar a una variable que se ha inicializado en cero. En las llamadas posteriores a LsaEnumerateTrustedDomains, EnumerationContext debe apuntar al identificador de enumeración devuelto por la llamada anterior.

[out] Buffer

Recibe un puntero a una matriz de estructuras de LSA_TRUST_INFORMATION que contienen los nombres y los SID de uno o varios dominios de confianza.

Cuando ya no necesite la información, pase el puntero devuelto a LsaFreeMemory.

[in] PreferedMaximumLength

Especifica el tamaño máximo preferido, en bytes, del búfer devuelto. Esta información es aproximada; el número real de bytes devueltos puede ser mayor que este valor.

[out] CountReturned

Puntero a una variable que recibe el número de elementos devueltos en el parámetro Buffer .

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es uno de los siguientes valores NTSTATUS.

Valor Descripción
STATUS_SUCCESS
La enumeración se ha completado correctamente.
STATUS_MORE_ENTRIES
La llamada se realizó correctamente, pero hay más dominios de confianza que se van a enumerar. Vuelva a llamar a LsaEnumerateTrustedDomains y pase el valor devuelto en el parámetro EnumerationContext .
STATUS_NO_MORE_ENTRIES
No hay más dominios de confianza para enumerar.
 

Si se produce un error en la función, el valor devuelto es un código NTSTATUS. Para obtener más información, vea Valores devueltos de la función de directiva LSA.

Puede usar la función LsaNtStatusToWinError para convertir el código NTSTATUS en un código de error de Windows.

Comentarios

En el caso de los dominios con controladores de dominio que ejecutan solo Windows NT 4.0 o versiones anteriores de Windows NT, LsaEnumerateTrustedDomains devuelve una lista de todos los dominios de confianza. En las versiones de Windows NT hasta la versión 4.0, todos los dominios de confianza son de confianza directa.

En dominios de modo mixto de Windows XP y Windows 2000, los controladores de dominio pueden ejecutar Windows XP, Windows 2000 o Windows NT. Por lo tanto, en dominios de modo mixto, algunos dominios de confianza son de confianza directa y otros son de confianza indirecta. Al enumerar los dominios de confianza de un sistema en un dominio de modo mixto, LsaEnumerateTrustedDomains devuelve solo dominios de confianza directamente.

Por el contrario, los dominios en modo nativo de Windows XP y Windows 2000 solo contienen controladores de dominio de Windows 2000, aunque puede haber miembros en el dominio que ejecutan Windows NT 4.0 o versiones anteriores. Al enumerar los dominios de confianza de un sistema en un dominio de Windows XP en modo nativo y Windows 2000, LsaEnumerateTrustedDomains devuelve dominios de confianza directa e indirecta.

Recuperar toda la información de confianza puede requerir más de una sola llamada a LsaEnumerateTrustedDomains . Puede usar el parámetro EnumerationContext para realizar varias llamadas, como se indica a continuación: En la primera llamada, establezca la variable a la que apunta EnumerationContext en cero. Si LsaEnumerateTrustedDomains devuelve STATUS_SUCCESS o STATUS_MORE_ENTRIES, vuelva a llamar a la función y pase el valor EnumerationContext devuelto por la llamada anterior. La enumeración se completa cuando la función devuelve STATUS_NO_MORE_ENTRIES.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ntsecapi.h
Library Advapi32.lib
Archivo DLL Advapi32.dll

Consulte también

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy