public static extern bool DuplicateToken( SafeTokenHandle ExistingTokenHandle, SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, out SafeTokenHandle DuplicateTokenHandle);
public static extern bool GetTokenInformation( SafeTokenHandle hToken, TOKEN_INFORMATION_CLASS tokenInfoClass, IntPtr pTokenInfo, Int32 tokenInfoLength, out Int32 returnLength);
public static extern bool OpenProcessToken(IntPtr hProcess, uint desiredAccess, out SafeTokenHandle hToken);