SecLookupAccountSid 関数 (ntifs.h)

SecLookupAccountSid は、入力としてセキュリティ識別子 (SID) を受け入れます。 この SID のアカウントの名前と、この SID が見つかった最初のドメインの名前を取得します。

構文

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountSid(
  [in]            PSID            Sid,
  [out]           PULONG          NameSize,
  [in, out]       PUNICODE_STRING NameBuffer,
  [out]           PULONG          DomainSize,
  [out, optional] PUNICODE_STRING DomainBuffer,
  [out]           PSID_NAME_USE   NameUse
);

パラメーター

[in] Sid

参照する SID へのポインター。

[out] NameSize

NameBuffer のサイズを指定する変数へのポインター。 入力時に、この値は入力 NameBuffer のサイズをバイト単位で指定します。 バッファーが小さすぎるため関数が失敗した場合、この変数は必要なバッファー サイズを受け取ります。 成功した場合、この変数には返される NameBuffer のサイズが含まれます。

[in, out] NameBuffer

Sid に関連付けられているアカウントの名前を受け取るバッファーへのポインター。 このパラメーターが NULL の場合、 NameSize は 0 になります。

[out] DomainSize

DomainBuffer パラメーターのサイズを指定する ULONG へのポインター。 バッファーが小さすぎるため関数が失敗した場合、この変数は必要なバッファー サイズを受け取ります。 DomainBuffer パラメーターが NULL の場合、このパラメーターは 0 に設定されます。

[out, optional] DomainBuffer

この SID が見つかった最初のドメインの名前を受け取るバッファーへのポインター。

[out] NameUse

アカウントの型を受け取る SID_NAME_USE 列挙型へのポインター。

戻り値

SecLookupAccountSid は、成功した場合はSTATUS_SUCCESS、失敗した場合は次のいずれかのエラー コードを返します。

リターン コード 説明
SEC_E_INTERNAL_ERROR ローカル システム機関 (LSA) またはローカル プロシージャ コール (LPC) にセキュリティ プロバイダーへの接続中に内部エラーが発生しました。
STATUS_ACCESS_DENIED 現在実行中のスレッドに関連付けられているプロセス ID が、現在のプロセス ID と一致しません。
STATUS_BUFFER_TOO_SMALL NameBuffer パラメーターまたは ReferencedDomain パラメーターのバッファー サイズが小さすぎます。
STATUS_INVALID_PARAMETER Name パラメーターの長さが、ローカル システム機関 (LSA) へのメッセージで許可されている長さを超えました。
STATUS_NO_MEMORY この関数で使用される一時的な内部バッファーに十分なメモリを割り当てることができませんでした。
STATUS_NONE_MAPPED Sid パラメーターが見つかりませんでした。
STATUS_PROCESS_IS_TERMINATING このプロセスは終了しているため、ローカル プロシージャ コール (LPC) 接続を確立できません。

注釈

SecLookupAccountSid は、最初に既知の SID の一覧を確認することで、指定された SID の名前の検索を試みます。 指定された SID が既知の SID に対応していない場合、関数は組み込みおよび管理上定義されたローカル アカウントを確認します。 次に、 関数はプライマリ ドメインを確認します。 プライマリ ドメインで認識されないセキュリティ識別子は、SID プレフィックスに対応する信頼されたドメインに対してチェックされます。

関数で SID のアカウント名が見つからない場合、 SecLookupAccountSid は失敗します。 これは、ネットワーク タイムアウトによって関数が名前を見つけることができない場合に発生する可能性があります。 また、対応するアカウント名がない SID (ログオン セッションを識別するログオン SID など) にも発生します。

SecLookupAccountSid は、ローカル アカウント、ローカル ドメイン アカウント、および明示的に信頼されたドメイン アカウントの SID を検索するだけでなく、フォレスト内のアカウントの SID フィールドにのみ表示される SID を含め、フォレスト内の任意のドメイン内の任意のアカウントの SID を検索できます。 SIDhistory フィールドには、別のドメインから移動されたアカウントの以前の SID が格納されます。 SID を検索するために、 SecLookupAccountSid はフォレストのグローバル カタログに対してクエリを実行します。

SecLookupAccountSid は、Win32 LookupAccountSid 関数と 同じです。

SecLookupAccountSid は、ユーザー モード ヘルパー サービスを使用してこの関数を実装する ksecdd ドライバーによってエクスポートされます。 したがって、ファイル システム内でこの関数を使用するには、ユーザー モード サービスとの通信に関する通常の規則に従う必要があります。 SecLookupAccountSid は、ページング ファイルの I/O 中に使用できません。

要件

要件
サポートされている最小のクライアント Windows XP
対象プラットフォーム ユニバーサル
Header ntifs.h (Ntifs.h を含む)
Library Ksecdd.lib
IRQL <= APC_LEVEL

こちらもご覧ください

SID

SID_NAME_USE

SecLookupAccountName

SecLookupWellKnownSid