LogonUserExW

LogonUserEx 関数は、ユーザーをローカルコンピュータにログオンしようとする。(Unicode)

LogonUserExW lpszUsername, lpszDomain, lpszPassword, dwLogonType, dwLogonProvider, phToken, ppLogonSid, ppProfileBuffer, pdwProfileLength, pQuotaLimits

lpszUsername : [wstr] ユーザーの名前を指定する null 終端文字列へのポインタ。これはログオン先のユーザーアカウントの名前である。ユーザープリンシパル名 (UPN) 形式 (user@DNS_domain_name) を使用する場合、lpszDomain パラメータは NULL でなければならない。
lpszDomain : [wstr] lpszUsername アカウントが含まれるアカウントデータベースを持つドメインまたはサーバーの名前を指定する null 終端文字列へのポインタ。このパラメータが NULL の場合、ユーザー名は UPN 形式で指定する必要がある。このパラメータが "." の場合、関数はローカルアカウントデータベースのみを使用してアカウントを検証する。
lpszPassword : [wstr] lpszUsername で指定されたユーザーアカウントの平文パスワードを指定する null 終端文字列へのポインタ。パスワードの使用が終わったら、SecureZeroMemory 関数を呼び出してメモリからパスワードをクリアする。パスワード保護の詳細については「Handling Passwords」を参照。
dwLogonType : [int] 
dwLogonProvider : [int] 
phToken : [intptr] 指定したユーザーを表すトークンへのハンドルを受け取るハンドル変数へのポインタ。返されたハンドルは ImpersonateLoggedOnUser 関数の呼び出しで使用できる。ほとんどの場合、返されるハンドルは CreateProcessAsUser 関数の呼び出しで使用できるプライマリトークンである。ただし、LOGON32_LOGON_NETWORK フラグを指定した場合、LogonUserEx は偽装トークンを返す。これは DuplicateTokenEx を呼び出して偽装トークンをプライマリトークンに変換しない限り、CreateProcessAsUser では使用できない。このハンドルが不要になったら、CloseHandle 関数を呼び出して閉じる。
ppLogonSid : [var] ログオンしたユーザーの SID を受け取るセキュリティ識別子 (SID) へのポインタへのポインタ。SID の使用が終わったら、LocalFree 関数を呼び出して解放する。
ppProfileBuffer : [var] ログオンしたユーザーのプロファイルを含むバッファのアドレスを受け取るポインタへのポインタ。
pdwProfileLength : [var] プロファイルバッファの長さを受け取る DWORD へのポインタ。
pQuotaLimits : [var] ログオンしたユーザーのクォータに関する情報を受け取る QUOTA_LIMITS 構造体へのポインタ。

(プラグイン / モジュール : advapi32.dll)

解説

LogonUserEx 関数は、ユーザーをローカルコンピュータにログオンしようとする。(Unicode)

[戻り値]
関数が成功した場合、関数は 0 以外を返す。関数が失敗した場合、0 を返す。拡張エラー情報を取得するには GetLastError
を呼び出す。

[備考]
LOGON32_LOGON_NETWORK ログオンタイプは最速だが、以下の制限がある。
(以下省略)

情報

プラグイン / モジュールadvapi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の advapi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_advapi32_gen2.hs