Поделиться через


Функция LsaEnumerateTrustedDomains (ntsecapi.h)

Функция LsaEnumerateTrustedDomains извлекает имена и идентификаторы безопасности доверенных доменов для проверки подлинности учетных данных входа. LsaEnumerateTrustedDomains предназначен для использования в системах под управлением Windows NT 4.0 или более ранних версий Windows NT. Используйте DsEnumerateDomainTrusts для любых других целей перечисления доверия. В частности, LsaEnumerateTrustedDomains можно использовать только в том случае, если выполняется одно или несколько из следующих значений:

  • Вызывающая система работает Windows NT 4.0 или более ранней версии Windows NT.
  • Целевая система (указанная с помощью параметра PolicyHandle) — это контроллер домена под управлением Windows NT 4.0 или более ранней версии.
  • Вызывающая система работает Windows NT 4.0 или более ранней версии и не является контроллером домена, а целевая система является контроллером домена в домене вызывающей системы. Целевая система может работать под управлением любой версии Windows NT, включая Windows 2000 и Windows XP.

Синтаксис

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

Параметры

[in] PolicyHandle

Дескриптор объекта Policy . Дескриптор должен иметь право доступа к POLICY_VIEW_LOCAL_INFORMATION. Дополнительные сведения см. в разделе Открытие дескриптора объекта политики.

[in] EnumerationContext

Указатель на дескриптор перечисления, который позволяет выполнять несколько вызовов для перечисления всех доверенных доменов. При первом вызове LsaEnumerateTrustedDomainsEnumerationContext должен указывать на переменную, которая была инициализирована нулевым значением. При последующих вызовах LsaEnumerateTrustedDomainsEnumerationContext должен указывать на дескриптор перечисления, возвращенный предыдущим вызовом.

[out] Buffer

Получает указатель на массив LSA_TRUST_INFORMATION структур, содержащих имена и идентификаторы безопасности одного или нескольких доверенных доменов.

Если сведения больше не нужны, передайте возвращенный указатель в LsaFreeMemory.

[in] PreferedMaximumLength

Задает предпочтительный максимальный размер возвращаемого буфера (в байтах). Эти сведения являются приблизительными; Фактическое количество возвращаемых байтов может быть больше этого значения.

[out] CountReturned

Указатель на переменную, которая получает количество элементов, возвращаемых в параметре Buffer .

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет одним из следующих значений NTSTATUS.

Значение Описание
STATUS_SUCCESS
Перечисление успешно завершено.
STATUS_MORE_ENTRIES
Вызов выполнен успешно, но есть более надежные домены для перечисления. Снова вызовите LsaEnumerateTrustedDomains , передав значение, возвращаемое в параметре EnumerationContext .
STATUS_NO_MORE_ENTRIES
Нет дополнительных доверенных доменов для перечисления.
 

Если функция завершается сбоем, возвращаемым значением будет код NTSTATUS. Дополнительные сведения см. в разделе Возвращаемые значения функции политики LSA.

Для преобразования кода NTSTATUS в код ошибки Windows можно использовать функцию LsaNtStatusToWinError .

Комментарии

Для доменов с контроллерами домена, работающими только Windows NT 4.0 или более ранних версий Windows NT, LsaEnumerateTrustedDomains возвращает список всех доверенных доменов. В выпусках Windows NT до версии 4.0 включительно все доверенные домены являются напрямую доверенными.

В доменах Windows XP и Windows 2000 смешанного режима контроллеры домена могут работать под управлением Windows XP, Windows 2000 или Windows NT. Таким образом, в доменах смешанного режима некоторые доверенные домены являются напрямую доверенными, а другие косвенно доверенными. При перечислении доверенных доменов системы в домене смешанного режима LsaEnumerateTrustedDomains возвращает только прямые доверенные домены.

В отличие от этого, домены Windows XP и Windows 2000 в собственном режиме содержат только контроллеры домена Windows 2000, даже если в домене могут быть члены под управлением Windows NT 4.0 или более ранних версий. При перечислении доверенных доменов системы в домене Windows XP и Windows 2000 в собственном режиме LsaEnumerateTrustedDomains возвращает как напрямую доверенные, так и косвенно доверенные домены.

Для получения всех сведений о доверии может потребоваться более одного вызова LsaEnumerateTrustedDomains . Параметр EnumerationContext можно использовать для выполнения нескольких вызовов, как показано ниже. При первом вызове задайте для переменной, на которую указывает enumerationContext , значение ноль. Если LsaEnumerateTrustedDomains возвращает STATUS_SUCCESS или STATUS_MORE_ENTRIES, вызовите функцию еще раз, передав значение EnumerationContext , возвращенное предыдущим вызовом. Перечисление завершается, когда функция возвращает STATUS_NO_MORE_ENTRIES.

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header ntsecapi.h
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy