PrivilegeCheck

指定した特権のセットがアクセストークンで有効かどうかを判定する。

PrivilegeCheck ClientToken, RequiredPrivileges, pfResult

ClientToken : [intptr] クライアントプロセスを表すアクセストークンへのハンドル。このハンドルはクライアントを偽装するスレッドのトークンを開くことで取得する必要がある。トークンは TOKEN_QUERY アクセスで開く必要がある。
RequiredPrivileges : [var] PRIVILEGE_SET 構造体へのポインタ。この構造体の Privilege メンバは LUID_AND_ATTRIBUTES 構造体の配列である。PrivilegeCheck を呼び出す前に、確認する特権のセットを示すために Privilege 配列を使用する。すべての特権が有効でなければならない場合は Control メンバを PRIVILEGE_SET_ALL_NECESSARY に設定する。特権のいずれか 1 つが有効であれば十分な場合はゼロに設定する。
pfResult : [var] 指定された特権のいずれか、またはすべてがアクセストークンで有効かどうかを示すために関数が設定する値へのポインタ。PRIVILEGE_SET 構造体の Control メンバが PRIVILEGE_SET_ALL_NECESSARY を指定する場合、すべての特権が有効な場合にのみこの値は TRUE になる。それ以外の場合、いずれかの特権が有効であればこの値は TRUE になる。

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

解説

指定した特権のセットがアクセストークンで有効かどうかを判定する。

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

[備考]

アクセストークンには、トークンに関連付けられたアカウントが保持する特権のリストが含まれる。これらの特権は有効または無効にできるが、ほとんどは既定で無効である。PrivilegeCheck
関数は有効な特権のみを確認する。アクセストークンが保持するすべての有効および無効な特権のリストを取得するには、GetTokenInformation
関数を呼び出す。アクセストークン内の特権のセットを有効または無効にするには、AdjustTokenPrivileges 関数を呼び出す。

情報

プラグイン / モジュール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