CreateRestrictedToken

既存のアクセストークンの制限付きバージョンである新しいアクセストークンを作成する。制限付きトークンは、無効化されたセキュリティ識別子 (SID)、削除された特権、制限する SID のリストを持つことができる。

CreateRestrictedToken ExistingTokenHandle, Flags, DisableSidCount, SidsToDisable, DeletePrivilegeCount, PrivilegesToDelete, RestrictedSidCount, SidsToRestrict, NewTokenHandle

ExistingTokenHandle : [intptr] プライマリトークンまたは偽装トークンへのハンドル。トークンは制限付きトークンでもよい。ハンドルは対象のトークンに対する TOKEN_DUPLICATE アクセス権を持っている必要がある。
Flags : [int] 
DisableSidCount : [int] SidsToDisable 配列の要素数を指定する。
SidsToDisable : [var] 制限付きトークン内の拒否のみ SID を指定する SID_AND_ATTRIBUTES 構造体の配列へのポインタ。システムは、セキュリティ保護可能オブジェクトへのアクセスを拒否するために拒否のみ SID を使用する。拒否のみ SID がないことがアクセスを許可するわけではない。
DeletePrivilegeCount : [int] PrivilegesToDelete 配列の要素数を指定する。
PrivilegesToDelete : [var] 制限付きトークンで削除する特権を指定する LUID_AND_ATTRIBUTES 構造体の配列へのポインタ。
RestrictedSidCount : [int] SidsToRestrict 配列の要素数を指定する。
SidsToRestrict : [var] 新しいトークンの制限する SID のリストを指定する SID_AND_ATTRIBUTES 構造体の配列へのポインタ。既存のトークンが制限付きトークンである場合、新しいトークンの制限する SID のリストは、この配列と既存のトークンの制限する SID のリストの共通部分となる。SidsToRestrict パラメータに配置された重複 SID を削除するチェックは行われない。重複 SID を使用すると、制限付きトークンが制限する SID リスト内に冗長な情報を持つことが可能である。
NewTokenHandle : [intptr] 新しい制限付きトークンへのハンドルを受け取る変数へのポインタ。このハンドルは ExistingTokenHandle と同じアクセス権を持つ。新しいトークンは既存のトークンと同じ種別(プライマリまたは偽装)である。NewTokenHandle で返されるハンドルは複製可能である。

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

解説

既存のアクセストークンの制限付きバージョンである新しいアクセストークンを作成する。制限付きトークンは、無効化されたセキュリティ識別子
(SID)、削除された特権、制限する SID のリストを持つことができる。

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

[備考]
CreateRestrictedToken 関数は、以下の方法でトークンを制限できる:
(以下省略)

情報

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