LsaLookupSids 関数 (ntsecapi.h)
[LsaLookupSids は、[要件] セクションで指定したオペレーティング システムで使用できます。 今後のバージョンでは変更されるか、利用できなくなる場合もあります。 代わりに、 LsaLookupSids2 を使用します。
LsaLookupSids 関数は、セキュリティ識別子 (SID) の配列に対応する名前を検索します。 LsaLookupSids が SID に対応する名前を見つけられない場合、この関数は SID を文字形式で返します。
構文
NTSTATUS LsaLookupSids(
[in] LSA_HANDLE PolicyHandle,
[in] ULONG Count,
[in] PSID *Sids,
[out] PLSA_REFERENCED_DOMAIN_LIST *ReferencedDomains,
[out] PLSA_TRANSLATED_NAME *Names
);
パラメーター
[in] PolicyHandle
Policy オブジェクトへのハンドル。 このハンドルには、POLICY_LOOKUP_NAMESアクセス権が必要です。 詳細については、「 ポリシー オブジェクト ハンドルを開く」を参照してください。
[in] Count
Sids 配列内の SID の数を指定します。 これは、 Names 配列で返されるエントリの数でもあります。 この値は 20480 以下である必要があります。
[in] Sids
参照する SID ポインターの配列へのポインター。 SID には、既知の SID、ユーザー、グループ、またはローカル グループ アカウント SID、またはドメイン SID を指定できます。
[out] ReferencedDomains
LSA_REFERENCED_DOMAIN_LIST構造体へのポインターへのポインターを受け取ります。 この構造体の Domains メンバーは、SID が見つかった各ドメインのエントリを含む配列です。 各ドメインのエントリには、ドメインの SID とフラット名が含まれています。 Windows ドメインの場合、フラット名は NetBIOS 名です。 Windows 以外のドメインを持つリンクの場合、フラット名はそのドメインの識別名、または NULL です。
情報が不要になったら、返されたポインターを LsaFreeMemory に渡します。 このメモリは、STATUS_NONE_MAPPEDまたはSTATUS_SOME_NOT_MAPPEDのいずれかのエラー コードで関数が失敗した場合でも解放する必要があります
[out] Names
LSA_TRANSLATED_NAME構造体の配列へのポインターを受け取ります。 Names 配列の各エントリには、Sids 配列内の対応するエントリの名前情報が含まれています。 アカウント SID の場合、各構造体の Name メンバーには、アカウントの分離名が含まれます。 ドメイン SID の場合、 Name メンバーは無効です。
Names 配列の各エントリの DomainIndex メンバーは、ReferencedDomains パラメーターで返される Domains 配列内のエントリのインデックスです。 インデックスは、SID が見つかったドメインの Domains 配列を識別します。
情報が不要になったら、返されたポインターを LsaFreeMemory に渡します。 このメモリは、STATUS_NONE_MAPPEDまたはSTATUS_SOME_NOT_MAPPEDのいずれかのエラー コードで関数が失敗した場合でも解放する必要があります
戻り値
関数が成功した場合、戻り値は次のいずれかの NTSTATUS 値になります。
リターン コード | 説明 |
---|---|
|
SID の一部を変換できませんでした。 これは情報レベルの戻り値です。 |
|
すべての SID が見つかり、正常に翻訳されました。 |
関数が失敗した場合、戻り値は NTSTATUS コードであり、次の値のいずれか、または LSA ポリシー関数の戻り値のいずれかになります。
リターン コード | 説明 |
---|---|
|
変換された SID はありません。 これはエラー レベルの戻り値です。 |
|
Sids 配列パラメーターが大きすぎます。 |
LsaNtStatusToWinError 関数を使用して、NTSTATUS コードを Windows エラー コードに変換できます。
注釈
アカウント SID の場合、 Name メンバーで返される文字列は、アカウントの分離名 (user_name など) です。 アカウントの複合名 (Acctg\user_name など) が必要な場合は、 ReferencedDomains バッファーからドメイン名を取得し、円記号と分離名を追加します。
LsaLookupSids 関数が SID を変換できない場合、関数は次のアルゴリズムを使用します。
- SID のドメインが既知の場合、 ReferencedDomains バッファーにはドメインのエントリが含まれており、 Names パラメーターで返される文字列は、SID からのアカウントの相対識別子 (RID) の Unicode 表現です。
- SID のドメインが不明な場合、 Names パラメーターで返される文字列は SID 全体の Unicode 表現であり、 ReferencedDomains バッファーにはこの SID のドメイン レコードがありません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | ntsecapi.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |