SaferComputeTokenFromLevel 関数 (winsafer.h)
SaferComputeTokenFromLevel 関数は、SAFER_LEVEL_HANDLEで指定された制限を使用してトークンを制限します。
構文
BOOL SaferComputeTokenFromLevel(
[in] SAFER_LEVEL_HANDLE LevelHandle,
[in, optional] HANDLE InAccessToken,
[out] PHANDLE OutAccessToken,
[in] DWORD dwFlags,
[in, out, optional] LPVOID lpReserved
);
パラメーター
[in] LevelHandle
入力トークンに配置する制限を含むSAFER_LEVEL_HANDLE。 SAFER_LEVELID_FULLYTRUSTEDまたはSAFER_LEVELID_DISALLOWEDの LevelId を持つハンドルをこの関数に渡さないでください。 これは、 SAFER_LEVELID_FULLYTRUSTED が無制限であり、 SAFER_LEVELID_DISALLOWED にトークンが含まれていないためです。
[in, optional] InAccessToken
制限されるトークン。 このパラメーターが NULL の場合は、現在のスレッドのトークンが使用されます。 現在のスレッドにトークンが含まれていない場合は、現在のプロセスのトークンが使用されます。
[out] OutAccessToken
結果として得られる制限付きトークン。
[in] dwFlags
メソッドの動作を指定します。 値には 、NULL またはビットごとの OR 演算を使用して組み合わせた次の値の 1 つ以上を指定できます。
値 | 意味 |
---|---|
|
OutAccessToken パラメーターが InAccessToken パラメーターよりも制限が厳しくない場合、OutAccessToken パラメーターは NULL を返します。 |
|
InAccessToken パラメーターで指定されたトークンは、LevelHandle パラメーターで指定された制限が適用された場合に作成されるトークンと比較されます。 制限付きトークンは実際には作成されません。
出力時に、 lpReserved パラメーターの値は比較の結果を指定します。 |
|
このフラグが設定されている場合、システムは AppLocker 規則をチェックしたり、ソフトウェア制限ポリシーを適用したりしません。 AppLocker の場合、このフラグは、実行可能ファイル、Windows インストーラー、スクリプト、DLL の 4 つのルール コレクションすべてについてチェックを無効にします。
インストール時に抽出された DLL を実行する必要があるセットアップ プログラムを作成するときに、このフラグを設定します。 トークンは、 GetTokenInformation を使用して、このフラグの存在を照会できます。 Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: AppLocker はサポートされていません。 |
|
出力時に、 lpReserved パラメーターの値は、制限付きトークンの作成に使用されるフラグのセットを指定します。 |
[in, out, optional] lpReserved
SAFER_TOKEN_COMPARE_ONLY フラグが設定されている場合、このパラメーターは出力時にトークン比較の結果を指定します。 出力値は LPDWORD です。 値 –1 は、結果のトークンが InAccessToken パラメーターで指定されたトークンよりも特権が低くなることを示します。
SAFER_TOKEN_WANT_FLAGS フラグが設定されていて、SAFER_TOKEN_COMPARE_ONLY フラグが設定されていない場合、このパラメーターは、制限付きトークンの作成に使用されるフラグを指定する LPDWORD 値です。
戻り値
関数が成功した場合は TRUE。それ以外の場合は FALSE。 拡張情報については、 GetLastError を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winsafer.h |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |
API セット | ext-ms-win-advapi32-safer-l1-1-0 (Windows 8で導入) |