ImpersonateSelf 関数 (securitybaseapi.h)

ImpersonateSelf 関数は、呼び出し元プロセスセキュリティ コンテキストを偽装するアクセス トークンを取得します。 トークンは呼び出し元のスレッドに割り当てられます。

構文

BOOL ImpersonateSelf(
  [in] SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
);

パラメーター

[in] ImpersonationLevel

新しいトークンの偽装レベルを指定する SECURITY_IMPERSONATION_LEVEL 列挙型を指定します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

ImpersonateSelf 関数は、プロセス全体ではなく、1 つのスレッドの特権を有効にしたり、1 つのスレッドの既定の随意アクセス制御リスト (DACL) を変更したりするタスクに使用されます。

偽装が完了すると、サーバーは RevertToSelf 関数を呼び出すことができます。

この関数を成功させるには、プロセス トークンを保護する DACL がTOKEN_DUPLICATE自身に権限を付与する必要があります。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

クライアント/サーバー Access Control関数

クライアント/サーバー Access Controlの概要

DuplicateToken

ImpersonateNamedPipeClient

Reverttoself

SECURITY_IMPERSONATION_LEVEL