LsaEnumerateTrustedDomains 関数 (ntsecapi.h)

LsaEnumerateTrustedDomains 関数は、ログオン資格情報を認証するために信頼されたドメインの名前と SID を取得しますLsaEnumerateTrustedDomains は、Windows NT 4.0 以前のバージョンのWindows NTを実行しているシステムで使用することを目的としています。 DsEnumerateDomainTrusts は、その他の信頼列挙の目的で使用します。 具体的には、 LsaEnumerateTrustedDomains は、次の 1 つ以上が当てはまる場合にのみ使用できます。

  • 呼び出し元システムは、Windows NT 4.0 以前のバージョンのWindows NTを実行しています。
  • ターゲット システム (PolicyHandle パラメーターを使用して指定) は、4.0 以前のバージョンWindows NT実行されているドメイン コントローラーです。
  • 呼び出し元システムは 4.0 以前のバージョンWindows NT実行されており、ドメイン コントローラーではなく、ターゲット システムは呼び出し元システムのドメイン内のドメイン コントローラーです。 ターゲット システムは、Windows 2000 や Windows XP など、任意のバージョンのWindows NTを実行できます。

構文

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

すべての信頼されたドメインを列挙するために複数の呼び出しを行うことができる列挙ハンドルへのポインター。 LsaEnumerateTrustedDomains の最初の呼び出しでは、EnumerationContext は 0 に初期化された変数を指す必要があります。 LsaEnumerateTrustedDomains への後続の呼び出しでは、EnumerationContext は前の呼び出しによって返された列挙ハンドルを指す必要があります。

[out] Buffer

1 つ以上の信頼されたドメインの名前と SID を含む LSA_TRUST_INFORMATION 構造体の配列へのポインターを受け取ります。

情報が不要になったら、返されたポインターを LsaFreeMemory に渡します。

[in] PreferedMaximumLength

返されるバッファーの推奨される最大サイズをバイト単位で指定します。 この情報は概算です。返される実際のバイト数がこの値を超える可能性があります。

[out] CountReturned

Buffer パラメーターで返される要素の数を受け取る変数へのポインター。

戻り値

関数が成功した場合、戻り値は次のいずれかの NTSTATUS 値になります。

説明
STATUS_SUCCESS
列挙が正常に完了しました。
STATUS_MORE_ENTRIES
呼び出しは成功しましたが、列挙する信頼できるドメインが増えました。 もう一度 LsaEnumerateTrustedDomains を呼び出し、 EnumerationContext パラメーターで返された値を渡します。
STATUS_NO_MORE_ENTRIES
列挙する信頼されたドメインはこれ以上ありません。
 

関数が失敗した場合、戻り値は NTSTATUS コードです。 詳細については、「 LSA ポリシー関数の戻り値」を参照してください。

LsaNtStatusToWinError 関数を使用して、NTSTATUS コードを Windows エラー コードに変換できます。

注釈

ドメイン コントローラーが 4.0 以前のバージョンWindows NT Windows NTのみを実行しているドメインの場合、LsaEnumerateTrustedDomains はすべての信頼されたドメインの一覧を返します。 リリース 4.0 までのWindows NTのリリースでは、すべての信頼されたドメインが直接信頼されます。

Windows XP と Windows 2000 混合モード ドメインでは、ドメイン コントローラーが Windows XP、Windows 2000、または Windows NTを実行している可能性があります。 そのため、混合モード ドメインでは、一部の信頼されたドメインは直接信頼され、他のドメインは間接的に信頼されます。 混合モード ドメインでシステムの信頼されたドメインを列挙すると、 LsaEnumerateTrustedDomains は直接信頼されたドメインのみを返します。

これに対し、Windows XP および Windows 2000 ネイティブ モード ドメインには、4.0 以前のバージョンを実行 Windows NTしているドメインにメンバーが存在する可能性がある場合でも、Windows 2000 ドメイン コントローラーのみが含まれます。 ネイティブ モードの Windows XP および Windows 2000 ドメインでシステムの信頼されたドメインを列挙すると、 LsaEnumerateTrustedDomains は直接信頼されたドメインと間接的に信頼されたドメインの両方を返します。

すべての信頼情報を取得するには、1 つ以上 の LsaEnumerateTrustedDomains 呼び出しが必要になる場合があります。 EnumerationContext パラメーターを使用すると、次のように複数の呼び出しを行うことができます。最初の呼び出しでは、EnumerationContext が指す変数を 0 に設定します。 LsaEnumerateTrustedDomains がSTATUS_SUCCESSまたはSTATUS_MORE_ENTRIESを返す場合は、前の呼び出しによって返された EnumerationContext 値を渡して、関数をもう一度呼び出します。 列挙は、関数がSTATUS_NO_MORE_ENTRIESを返すときに完了します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー ntsecapi.h
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

LSA_TRUST_INFORMATION

LsaEnumerateTrustedDomainsEx

LsaFreeMemory

LsaOpenPolicy