共用方式為


ZwOpenThreadTokenEx 函式 (ntifs.h)

ZwOpenThreadTokenEx 例程會開啟與線程相關聯的存取令牌。

語法

NTSYSAPI NTSTATUS ZwOpenThreadTokenEx(
  [in]  HANDLE      ThreadHandle,
  [in]  ACCESS_MASK DesiredAccess,
  [in]  BOOLEAN     OpenAsSelf,
  [in]  ULONG       HandleAttributes,
  [out] PHANDLE     TokenHandle
);

參數

[in] ThreadHandle

處理要開啟其存取令牌的線程。 句柄必須具有THREAD_QUERY_INFORMATION存取權。 使用 NtCurrentThread 巨集來指定目前的線程。

[in] DesiredAccess

ACCESS_MASK 結構,指定存取令牌的要求存取類型。 這些要求的存取類型會與令牌的任意訪問控制清單(DACL)進行比較,以判斷授與或拒絕哪些訪問許可權。

[in] OpenAsSelf

布爾值,指定是否要針對呼叫 ZwOpenThreadToken Ex 之線程的安全性內容,或針對呼叫線程的進程安全性內容進行存取檢查。

如果此參數 FALSE,則會使用呼叫線程的安全性內容來執行存取檢查。 如果線程正在模擬用戶端,此安全性內容可以是客戶端進程。 如果此參數 TRUE,則會使用呼叫線程進程的安全性內容進行存取檢查。

[in] HandleAttributes

所建立句柄的屬性。 目前僅支援OBJ_KERNEL_HANDLE。 如果呼叫端未在系統進程內容中執行,則必須為此參數指定OBJ_KERNEL_HANDLE。

[out] TokenHandle

呼叫端配置的變數指標,該變數會接收新開啟存取令牌的句柄。

傳回值

ZwOpenThreadTokenEx 會傳回STATUS_SUCCESS或適當的錯誤狀態。 可能的錯誤狀態代碼包括下列專案:

傳回碼 描述
STATUS_ACCESS_DENIED ThreadHandle 沒有THREAD_QUERY_INFORMATION存取權。
STATUS_CANT_OPEN_ANONYMOUS 用戶端要求 SecurityAnonymous 模擬層級。 不過,無法開啟匿名令牌。 如需詳細資訊,請參閱 SECURITY_IMPERSONATION_LEVEL
STATUS_INVALID_HANDLE ThreadHandle 不是有效的句柄。
STATUS_INVALID_PARAMETER 指定的 HandleAttributes 不包含OBJ_KERNEL_HANDLE。
STATUS_NO_TOKEN 已嘗試開啟與目前未模擬用戶端之線程相關聯的令牌。
STATUS_OBJECT_TYPE_MISMATCH ThreadHandle 不是線程句柄。

言論

ZwOpenThreadTokenEx 會開啟與線程相關聯的存取令牌,並傳回該令牌的句柄。

OpenAsSelf 參數可讓伺服器進程在用戶端進程指定 SECURITY_IMPERSONATION_LEVEL 列舉類型的 SecurityIdentification 模擬層級時,開啟用戶端進程的存取令牌。 如果沒有此參數,呼叫進程就無法使用用戶端的安全性內容開啟用戶端的存取令牌,因為無法使用 SecurityIdentification 模擬層級開啟執行層級物件。

呼叫 ZwOpenThreadTokenEx 取得的任何句柄,最終都必須呼叫 ZwClose來釋放。

在系統進程以外的進程內容中執行的驅動程式例程,必須設定 HandleAttributes 參數的 OBJ_KERNEL_HANDLE 屬性,ZwOpenThreadTokenEx。 這會將 ZwOpenThreadTokenEx 所傳回的句柄 限制為在核心模式中執行的進程。 否則,進程可以存取其內容中的驅動程序執行句柄。

如需安全性和訪問控制的詳細資訊,請參閱 適用於驅動程式開發人員的 Windows 安全性模型,以及 Windows SDK 中這些主題的檔。

注意

如果在使用者模式中呼叫 ZwOpenThreadTokenEx 函式,您應該使用名稱 “NtOpenThreadTokenEx” 而不是 “ZwOpenThreadTokenEx”。

對於內核模式驅動程式的呼叫,NtXxxZwXxx 版本的 Windows 原生系統服務例程,在處理和解譯輸入參數的方式上可能會有不同的行為。 如需 nt NtXxxZwXxx 例程之間關聯性的詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

要求

要求 價值
最低支援的用戶端 Windows XP
目標平臺 普遍
標頭 ntifs.h (include Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDIs(storport)PowerIrpDDis(wdm)

另請參閱

< ACCESS_MASK

ACL

PsDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

使用 Nt 和 Zw 版本的原生系統服務例程

ZwClose

ZwOpenProcessTokenEx