AdjustTokenPrivileges

指定したアクセストークンの特権を有効化または無効化する。アクセストークンの特権を有効化または無効化するには TOKEN_ADJUST_PRIVILEGES アクセスが必要である。

AdjustTokenPrivileges TokenHandle, DisableAllPrivileges, NewState, BufferLength, PreviousState, ReturnLength

TokenHandle : [intptr] 変更する特権を含むアクセストークンへのハンドル。ハンドルはトークンに対する TOKEN_ADJUST_PRIVILEGES アクセス権を持っている必要がある。PreviousState パラメータが NULL でない場合、ハンドルは TOKEN_QUERY アクセス権も持っている必要がある。
DisableAllPrivileges : [int] 関数がトークンのすべての特権を無効化するかどうかを指定する。この値が TRUE の場合、関数はすべての特権を無効化し NewState パラメータを無視する。FALSE の場合、関数は NewState パラメータが指す情報に基づいて特権を変更する。
NewState : [var] 特権とその属性の配列を指定する TOKEN_PRIVILEGES 構造体へのポインタ。DisableAllPrivileges パラメータが FALSE の場合、AdjustTokenPrivileges 関数はトークンに対してこれらの特権を有効化・無効化・削除する。AdjustTokenPrivileges 関数が特権属性に基づいて取る動作を次の表に示す。
BufferLength : [int] PreviousState パラメータが指すバッファのサイズ(バイト単位)を指定する。PreviousState パラメータが NULL の場合、このパラメータは 0 にできる。
PreviousState : [var] 関数が変更する特権の以前の状態を格納する TOKEN_PRIVILEGES 構造体で満たされるバッファへのポインタ。すなわち、本関数によって変更された特権があれば、その特権と以前の状態が PreviousState で参照される TOKEN_PRIVILEGES 構造体に格納される。TOKEN_PRIVILEGES の PrivilegeCount メンバが 0 の場合、本関数によって変更された特権はない。このパラメータは NULL にできる。
ReturnLength : [var] PreviousState パラメータが指すバッファに必要なサイズ(バイト単位)を受け取る変数へのポインタ。PreviousState が NULL の場合、このパラメータは NULL にできる。

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

解説

指定したアクセストークンの特権を有効化または無効化する。アクセストークンの特権を有効化または無効化するには
TOKEN_ADJUST_PRIVILEGES アクセスが必要である。

[戻り値]
関数が成功した場合、戻り値は 0
以外となる。関数が指定されたすべての特権を調整したかどうかを判断するには、関数が成功したときに以下のいずれかの値を返す
GetLastError を呼び出す。
(以下省略)

[備考]
AdjustTokenPrivileges
関数はアクセストークンに新しい特権を追加できない。トークンの既存の特権を有効化または無効化できるだけである。トークンの特権を調べるには
GetTokenInformation 関数を呼び出す。NewState
パラメータには、トークンが持っていない特権を指定しても関数は失敗しない。この場合、関数はトークンが持つ特権を調整し、それ以外の特権は無視するため、関数は成功する。関数が指定されたすべての特権を調整したかどうかを判断するには、GetLastError
関数を呼び出す。PreviousState パラメータは調整された特権を示す。PreviousState
パラメータは、調整された特権の元の状態を含む TOKEN_PRIVILEGES 構造体を取得する。元の状態を復元するには、後続の
AdjustTokenPrivileges 関数呼び出しの NewState パラメータとして PreviousState
ポインタを渡す。

情報

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