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 |