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
ZwOpenThreadTokenEx を呼び出すスレッドのセキュリティ コンテキストに対してアクセス チェック
このパラメーターが FALSE
[in] HandleAttributes
作成されたハンドルの属性。 現在、OBJ_KERNEL_HANDLEのみがサポートされています。 呼び出し元がシステム プロセス コンテキストで実行されていない場合は、このパラメーターにOBJ_KERNEL_HANDLEを指定する必要があります。
[out] TokenHandle
新しく開かれたアクセス トークンへのハンドルを受け取る呼び出し元によって割り当てられた変数へのポインター。
戻り値
ZwOpenThreadTokenEx
リターン コード | 形容 |
---|---|
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 パラメーターを使用すると、クライアント プロセスが列挙型の SecurityIdentification 偽装レベルを指定した場合に、サーバー プロセスでクライアント プロセスのアクセス トークンを開 SECURITY_IMPERSONATION_LEVEL。 このパラメーターがないと、SecurityIdentification 偽装レベルを使用してエグゼクティブ レベルのオブジェクトを開くことができず、クライアントのセキュリティ コンテキストを使用して、呼び出し元のプロセスでクライアントのアクセス トークンを開くことができません。
ZwOpenThreadTokenEx
システム プロセス以外のプロセス コンテキストで実行されるドライバー ルーチンは、ZwOpenThreadTokenExの
セキュリティとアクセス制御の詳細については、ドライバー開発者向けの Windows セキュリティ モデルの と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。
手記
ZwOpenThreadTokenEx 関数の呼び出しがユーザー モードで発生する場合は、"ZwOpenThreadTokenEx" ではなく"NtOpenThreadTokenEx" という名前を使用する必要があります。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
PsDereferencePrimaryToken の