SecLookupAccountName 関数 (ntifs.h)

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

構文

KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupAccountName(
  [in]               PUNICODE_STRING Name,
  [in, out]          PULONG          SidSize,
  [out]              PSID            Sid,
  [out]              PSID_NAME_USE   NameUse,
  [out]              PULONG          DomainSize,
  [in_out, optional] PUNICODE_STRING ReferencedDomain
);

パラメーター

[in] Name

アカウント名を指定する Unicode 文字列へのポインター。 secLookupAccountName が目的のドメイン内のアカウントを確実に検索するには、domain_name\user_name形式の完全修飾文字列を使用します。

[in, out] SidSize

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

[out] Sid

Name パラメーターによって指されるアカウント名に対応する SID 構造体を受け取るバッファーへのポインター。 このパラメーターが NULL の場合、 SidSize は 0 である必要があります。

[out] NameUse

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

[out] DomainSize

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

[in_out, optional] ReferencedDomain

アカウント名が見つかったドメインの名前のバッファーへのポインター。 このパラメーターは省略可能であり、NULL にすることができます。 ドメインに参加していないコンピューターの場合、このバッファーはコンピューター名を受け取ります。

戻り値

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

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

注釈

SecLookupAccountName は、指定した名前の SID の検索を試みます。 関数は、組み込みおよび管理上定義されたローカル アカウントをチェックします。 次に、この関数はプライマリ ドメインを確認します。 名前が見つからない場合は、信頼されたドメインがチェックされます。

独立した名前 (たとえば、user_name) ではなく、完全修飾アカウント名 (たとえば、domain_name\user_name) を使用します。 完全修飾名は明確であり、検索を実行するとパフォーマンスが向上します。 この関数では、完全修飾 DNS 名 (たとえば、example.example.com\user_name) とユーザー プリンシパル名 (UPN) もサポートされます (例: someone@example.com)。

SecLookupAccountName は、ローカル アカウント、ローカル ドメイン アカウント、明示的に信頼されたドメイン アカウントを検索するだけでなく、フォレスト内の任意のドメイン内の任意のアカウントの名前を検索できます。

SecLookupAccountName は、Win32 LookupAccountName 関数と 同じです。

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

要件

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

こちらもご覧ください

SID

SID_NAME_USE

SecLookupAccountSid

SecLookupWellKnownSid