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 ,其中包含在輸入令牌上放置的限制。 請勿將 LevelId 為 SAFER_LEVELID_FULLYTRUSTED 或 SAFER_LEVELID_DISALLOWED 的句柄傳遞至此函式。 這是因為 SAFER_LEVELID_FULLYTRUSTED 不受限制, SAFER_LEVELID_DISALLOWED 不包含令牌。
[in, optional] InAccessToken
要限制的令牌。 如果此參數為 NULL,則會使用目前線程的令牌。 如果目前的線程不包含令牌,則會使用目前進程的令牌。
[out] OutAccessToken
產生的受限制令牌。
[in] dwFlags
指定方法的行為。 此值可以是 NULL 或下列一或多個值,使用位 OR 運算結合。
值 | 意義 |
---|---|
|
如果 OutAccessToken 參數不比 InAccessToken 參數更嚴格, OutAccessToken 參數會傳回 NULL。 |
|
InAccessToken 參數指定的令牌會與套用 LevelHandle 參數所指定的限制時所建立的令牌進行比較。 實際上不會建立受限制的令牌。
輸出時, lpReserved 參數的值會指定比較的結果。 |
|
如果設定此旗標,系統不會檢查 AppLocker 規則或套用 軟體限制原則。 針對 AppLocker,此旗標會停用所有四個規則集合的檢查:可執行檔、Windows Installer、腳本和 DLL。
建立必須在安裝期間執行擷取 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 |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |
API 集合 | ext-ms-win-advapi32-safer-l1-1-0 (於 Windows 8) |