OpenProcessToken 関数 (processthreadsapi.h)

OpenProcessToken 関数は、プロセスに関連付けられているアクセス トークンを開きます。

構文

BOOL OpenProcessToken(
  [in]  HANDLE  ProcessHandle,
  [in]  DWORD   DesiredAccess,
  [out] PHANDLE TokenHandle
);

パラメーター

[in] ProcessHandle

アクセス トークンが開かれているプロセスへのハンドル。 プロセスには、PROCESS_QUERY_LIMITED_INFORMATIONアクセス許可が必要です。 詳細については、「 プロセス セキュリティとアクセス権 」を参照してください。

[in] DesiredAccess

アクセス トークンへのアクセスの要求された種類を指定するアクセス マスクを指定します。 これらの要求されたアクセスの種類は、トークンの 随意アクセス制御リスト (DACL) と比較して、許可または拒否されるアクセスを決定します。

アクセス トークンのアクセス権の一覧については、「 Access-Token オブジェクトのアクセス権」を参照してください。

[out] TokenHandle

関数が返されるときに、新しく開かれたアクセス トークンを識別するハンドルへのポインター。

戻り値

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

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

解説

昇格されていないプロセス内から昇格されたプロセスへのハンドルを取得するには、両方のプロセスを同じアカウントから開始する必要があります。

チェック対象のプロセスが別のアカウントによって開始された場合は、チェック プロセスでSE_DEBUG_NAME特権を有効にする必要があります。 詳細については、「 特権定数 (承認)」 を参照してください。

TokenHandle パラメーターから返されるアクセス トークン ハンドルを閉じるには、CloseHandle を呼び出します。

要件

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

こちらもご覧ください

アクセス制御

基本的なAccess Control関数

AccessCheck

AdjustTokenGroups

AdjustTokenPrivileges

CloseHandle

GetCurrentProcessToken

GetCurrentThreadEffectiveToken

GetCurrentThreadToken

GetTokenInformation

OpenThreadToken

SetTokenInformation