OpenProcessToken function (processthreadsapi.h)
The OpenProcessToken function opens the access token associated with a process.
BOOL OpenProcessToken( [in] HANDLE ProcessHandle, [in] DWORD DesiredAccess, [out] PHANDLE TokenHandle );
A handle to the process whose access token is opened. The process must have the PROCESS_QUERY_LIMITED_INFORMATION access permission. See Process Security and Access Rights for more info.
Specifies an access mask that specifies the requested types of access to the access token. These requested access types are compared with the discretionary access control list (DACL) of the token to determine which accesses are granted or denied.
For a list of access rights for access tokens, see Access Rights for Access-Token Objects.
A pointer to a handle that identifies the newly opened access token when the function returns.
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
To get a handle to an elevated process from within a non-elevated process, both processes must be started from the same account.
If the process being checked was started by a different account, the checking process needs to have the SE_DEBUG_NAME privilege enabled. See Privilege Constants (Authorization) for more info.
To close the access token handle returned through the TokenHandle parameter, call CloseHandle.
|Minimum supported client||Windows XP [desktop apps | UWP apps]|
|Minimum supported server||Windows Server 2003 [desktop apps | UWP apps]|
|Header||processthreadsapi.h (include Windows.h)|