mirror of
https://github.com/processhacker/phnt
synced 2026-06-08 16:49:04 +00:00
232 lines
3.2 KiB
C
232 lines
3.2 KiB
C
/*
|
|
* User Manager service API definitions.
|
|
*
|
|
* This file is part of System Informer.
|
|
*/
|
|
|
|
#ifndef _USERMGR_H
|
|
#define _USERMGR_H
|
|
|
|
// private
|
|
typedef struct _SESSION_USER_CONTEXT
|
|
{
|
|
ULONGLONG ContextToken;
|
|
ULONG SessionId;
|
|
ULONG Reserved;
|
|
} SESSION_USER_CONTEXT, *PSESSION_USER_CONTEXT;
|
|
|
|
// private
|
|
typedef struct _CRED_PROV_CREDENTIAL
|
|
{
|
|
ULONG Flags;
|
|
ULONG AuthenticationPackage;
|
|
ULONG Size;
|
|
PVOID Information;
|
|
} CRED_PROV_CREDENTIAL, *PCRED_PROV_CREDENTIAL;
|
|
|
|
#define USERMGRAPI DECLSPEC_IMPORT
|
|
|
|
//
|
|
// Contexts
|
|
//
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
VOID
|
|
NTAPI
|
|
UMgrFreeSessionUsers(
|
|
_In_ _Post_invalid_ PSESSION_USER_CONTEXT SessionUsers
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrEnumerateSessionUsers(
|
|
_Out_ PULONG Count,
|
|
_Outptr_ PSESSION_USER_CONTEXT *SessionUsers
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserContext(
|
|
_In_ HANDLE TokenHandle,
|
|
_Out_ PULONGLONG ContextToken
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserContextFromSid(
|
|
_In_ PCWSTR SidString,
|
|
_Out_ PULONGLONG ContextToken
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserContextFromName(
|
|
_In_ PCWSTR UserName,
|
|
_Out_ PULONGLONG ContextToken
|
|
);
|
|
|
|
#endif
|
|
|
|
//
|
|
// Tokens
|
|
//
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryDefaultAccountToken(
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQuerySessionUserToken(
|
|
_In_ ULONG SessionId,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserToken(
|
|
_In_ ULONGLONG Context,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserTokenFromSid(
|
|
_In_ PCWSTR SidString,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrQueryUserTokenFromName(
|
|
_In_ PCWSTR UserName,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrGetConstrainedUserToken(
|
|
_In_opt_ HANDLE InputTokenHandle,
|
|
_In_ ULONGLONG Context,
|
|
_In_opt_ PSECURITY_CAPABILITIES Capabilities,
|
|
_Out_ _Ret_maybenull_ PHANDLE OutputTokenHandle
|
|
);
|
|
|
|
#endif
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10_TH2)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrChangeSessionUserToken(
|
|
_In_ HANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrGetImpersonationTokenForContext(
|
|
_In_ HANDLE InputTokenHandle,
|
|
_In_ ULONGLONG Context,
|
|
_Out_ PHANDLE OutputTokenHandle
|
|
);
|
|
|
|
#endif
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10_RS1)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrGetSessionActiveShellUserToken(
|
|
_In_ ULONG SessionId,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
#endif
|
|
|
|
//
|
|
// Single-session SKU
|
|
//
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrOpenProcessTokenForQuery(
|
|
_In_ ULONG ProcessId,
|
|
_Out_ PHANDLE TokenHandle
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrOpenProcessHandleForAccess(
|
|
_In_ ACCESS_MASK DesiredAccess,
|
|
_In_ ULONG ProcessId,
|
|
_Out_ PHANDLE ProcessHandle
|
|
);
|
|
|
|
#endif
|
|
|
|
//
|
|
// Credentials
|
|
//
|
|
|
|
#if (PHNT_VERSION >= PHNT_WINDOWS_10)
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrFreeUserCredentials(
|
|
_In_ PCRED_PROV_CREDENTIAL Credentials
|
|
);
|
|
|
|
// rev
|
|
USERMGRAPI
|
|
HRESULT
|
|
NTAPI
|
|
UMgrGetCachedCredentials(
|
|
_In_ PSID Sid,
|
|
_Outptr_ PCRED_PROV_CREDENTIAL *Credentials
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|