OpenProcessToken (advapi32)
Last changed: -149.173.6.25

.
Summary
The OpenProcessToken function opens the access token associated with a process, using this function we can get a handle to the access token assosiated to the process, if needed we can use this hanle with GetTokenInformation Api function to get SID and other informations inside that token - for more information feel free to contact me at jacobabraham2001@yahoo.com

C# Signature:

[DllImport("advapi32.dll", SetLastError=true)]
static extern bool OpenProcessToken(IntPtr ProcessHandle,
   UInt32 DesiredAccess, out IntPtr TokenHandle);

VB Signature:

Declare Function OpenProcessToken Lib "advapi32.dll" (ProcessHandle As IntPtr, _
   DesiredAccess As Integer, ByRef TokenHandle As IntPtr) As Boolean

Notes:

None.

Tips & Tricks:

Use these for DesiredAccess

    static uint STANDARD_RIGHTS_REQUIRED = 0x000F0000;
    static uint STANDARD_RIGHTS_READ = 0x00020000;
    static uint TOKEN_ASSIGN_PRIMARY = 0x0001;
    static uint TOKEN_DUPLICATE = 0x0002;
    static uint TOKEN_IMPERSONATE = 0x0004;
    static uint TOKEN_QUERY = 0x0008;
    static uint TOKEN_QUERY_SOURCE = 0x0010;
    static uint TOKEN_ADJUST_PRIVILEGES = 0x0020;
    static uint TOKEN_ADJUST_GROUPS = 0x0040;
    static uint TOKEN_ADJUST_DEFAULT = 0x0080;
    static uint TOKEN_ADJUST_SESSIONID = 0x0100;
    static uint TOKEN_READ = (STANDARD_RIGHTS_READ | TOKEN_QUERY);
    static uint TOKEN_ALL_ACCESS = (STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY |
        TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE |
        TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT |
        TOKEN_ADJUST_SESSIONID);

Source

Sample Code:

Please add some!

Alternative Managed API:

Do you know one? Please contribute it!

Documentation