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 つ以上を指定できます。

意味
SAFER_TOKEN_NULL_IF_EQUAL
1 (0x1)
OutAccessToken パラメーターが InAccessToken パラメーターよりも制限が厳しくない場合、OutAccessToken パラメーターは NULL を返します。
SAFER_TOKEN_COMPARE_ONLY
2 (0x2)
InAccessToken パラメーターで指定されたトークンは、LevelHandle パラメーターで指定された制限が適用された場合に作成されるトークンと比較されます。 制限付きトークンは実際には作成されません。

出力時に、 lpReserved パラメーターの値は比較の結果を指定します。

SAFER_TOKEN_MAKE_INERT
4 (0x4)
このフラグが設定されている場合、システムは AppLocker 規則をチェックしたり、ソフトウェア制限ポリシーを適用したりしません。 AppLocker の場合、このフラグは、実行可能ファイル、Windows インストーラー、スクリプト、DLL の 4 つのルール コレクションすべてについてチェックを無効にします。

インストール時に抽出された DLL を実行する必要があるセットアップ プログラムを作成するときに、このフラグを設定します。

トークンは、 GetTokenInformation を使用して、このフラグの存在を照会できます。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: AppLocker はサポートされていません。

SAFER_TOKEN_WANT_FLAGS
8 (0x8)
出力時に、 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で導入)