SeImpersonateClientEx 関数 (ntifs.h)
SeImpersonateClientEx ルーチンにより、スレッドがユーザーを偽装します。
構文
NTSTATUS SeImpersonateClientEx(
[in] PSECURITY_CLIENT_CONTEXT ClientContext,
[in, optional] PETHREAD ServerThread
);
パラメーター
[in] ClientContext
ユーザーのセキュリティ クライアント コンテキストへのポインター。
[in, optional] ServerThread
ユーザーを偽装するスレッドへのポインター。 指定しない場合は、呼び出し元のスレッドが使用されます。
戻り値
SeImpersonateClientEx は、次のような適切な NTSTATUS 値を返します。
リターン コード | 形容 |
---|---|
|
偽装の試行が成功しました。 |
|
ServerThread パラメーターで指定されたスレッドには、ClientContext パラメーターで指定されているセキュリティ クライアント コンテキストを持つユーザーを偽装するための十分なアクセス権がありませんでした。 |
|
SeImpersonateClientEx、偽装情報構造にメモリを割り当てるときにプール割り当てエラーが発生しました。 |
備考
SeImpersonateClientEx は、スレッドがユーザーを偽装するために使用されます。 ClientContext のクライアント セキュリティ コンテキストは、最新であると見なされます。
信頼されていないユーザー スレッドの特権状態を上げることは非常に安全ではありません (たとえば、ユーザーのスレッドを取得し、LocalSystem を偽装します)。 信頼されていないユーザー スレッドに特権が発生した場合、ユーザーは昇格後にスレッド トークンを取得し、システム全体のセキュリティを無効にできます。
より高い特権の状態が必要な場合は、タスクを作業キューにディスパッチする必要があります。タスクはシステム ワーカー スレッドで安全に処理できます。 この方法では、偽装は必要ありません。
ユーザーの偽装を終了するには、SeStopImpersonatingClient ルーチンを呼び出します。
PsImpersonateClient ルーチンを使用すると、サーバー スレッドでクライアントを偽装できます。
セキュリティとアクセス制御の詳細については、ドライバー開発者向けの Windows セキュリティ モデルの と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
関連項目
PsImpersonateClient の