uLib  User mode C/C++ extended API library for Win32 programmers.
Security Subsystem Functions

Module Description

_NtOpenProcessToken et cetera...

Functions

_NTFN_EXTERN NTSTATUS _NtOpenProcessToken (IN HANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, OUT PHANDLE TokenHandle)
 
_NTFN_EXTERN NTSTATUS _NtOpenProcessTokenEx (IN HANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, OUT PHANDLE TokenHandle)
 
_NTFN_EXTERN NTSTATUS _NtOpenThreadToken (IN HANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN BOOLEAN OpenAsSelf, OUT PHANDLE TokenHandle)
 
_NTFN_EXTERN NTSTATUS _NtOpenThreadTokenEx (IN HANDLE ThreadHandle, IN ACCESS_MASK DesiredAccess, IN BOOLEAN OpenAsSelf, IN ULONG HandleAttributes, OUT PHANDLE TokenHandle)
 
_NTFN_EXTERN NTSTATUS _NtCreateToken (OUT PHANDLE TokenHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN TOKEN_TYPE TokenType, IN PLUID AuthenticationId, IN PLARGE_INTEGER ExpirationTime, IN PTOKEN_USER TokenUser, IN PTOKEN_GROUPS TokenGroups, IN PTOKEN_PRIVILEGES TokenPrivileges, IN PTOKEN_OWNER TokenOwner, IN PTOKEN_PRIMARY_GROUP TokenPrimaryGroup, IN PTOKEN_DEFAULT_DACL TokenDefaultDacl, IN PTOKEN_SOURCE TokenSource)
 
_NTFN_EXTERN NTSTATUS _NtDuplicateToken (IN HANDLE ExistingTokenHandle, IN ACCESS_MASK DesiredAccess, OPTIN POBJECT_ATTRIBUTES ObjectAttributes, IN BOOLEAN EffectiveOnly, IN TOKEN_TYPE TokenType, OUT PHANDLE NewTokenHandle)
 
_NTFN_EXTERN NTSTATUS _NtCompareTokens (IN HANDLE FirstTokenHandle, IN HANDLE SecondTokenHandle, OUT PBOOLEAN Equal)
 
_NTFN_EXTERN NTSTATUS _NtPrivilegeCheck (IN HANDLE ClientToken, INOUT PPRIVILEGE_SET RequiredPrivileges, OUT PBOOLEAN Result)
 
_NTFN_EXTERN NTSTATUS _NtAdjustPrivilegesToken (IN HANDLE TokenHandle, IN BOOLEAN DisableAllPrivileges, OPTIN PTOKEN_PRIVILEGES NewState, IN ULONG BufferLength, OPTOUT PTOKEN_PRIVILEGES PreviousState, OPTOUT PULONG ReturnLength)
 
_NTFN_EXTERN NTSTATUS _NtAdjustGroupsToken (IN HANDLE TokenHandle, IN BOOLEAN ResetToDefault, OPTIN PTOKEN_GROUPS NewState, OPTIN ULONG BufferLength, OPTOUT PTOKEN_GROUPS PreviousState, OUT PULONG ReturnLength)
 
_NTFN_EXTERN NTSTATUS _NtQueryInformationToken (IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, OPTOUT PVOID TokenInformation, IN ULONG TokenInformationLength, OUT PULONG ReturnLength)
 
_NTFN_EXTERN NTSTATUS _NtSetInformationToken (IN HANDLE TokenHandle, IN TOKEN_INFORMATION_CLASS TokenInformationClass, IN PVOID TokenInformation, IN ULONG TokenInformationLength)
 
_NTFN_EXTERN NTSTATUS _NtImpersonateAnonymousToken (IN HANDLE Thread)
 
_NTFN_EXTERN NTSTATUS _NtAllocateLocallyUniqueId (OUT LUID *LocallyUniqueId)
 
_NTFN_EXTERN NTSTATUS _NtAllocateUuids (OUT PULARGE_INTEGER Time, OUT PULONG Range, OUT PULONG Sequence, OUT PUCHAR Seed)
 
_NTFN_EXTERN NTSTATUS _NtAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, OUT PULONG ReturnLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus)
 
_NTFN_EXTERN NTSTATUS _NtAccessCheckByType (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE_LIST ObjectTypeList, IN ULONG ObjectTypeLength, IN PGENERIC_MAPPING GenericMapping, IN PPRIVILEGE_SET PrivilegeSet, INOUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus)
 
_NTFN_EXTERN NTSTATUS _NtAccessCheckByTypeResultList (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE_LIST ObjectTypeList, IN ULONG ObjectTypeLength, IN PGENERIC_MAPPING GenericMapping, IN PPRIVILEGE_SET PrivilegeSet, INOUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus)
 
_NTFN_EXTERN NTSTATUS _NtAccessCheckAndAuditAlarm (IN PUNICODE_STRING SubsystemName, OPTIN PVOID HandleId, IN PUNICODE_STRING ObjectTypeName, IN PUNICODE_STRING ObjectName, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN ACCESS_MASK DesiredAccess, IN PGENERIC_MAPPING GenericMapping, IN BOOLEAN ObjectCreation, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus, OUT PBOOLEAN GenerateOnClose)
 
_NTFN_EXTERN NTSTATUS _NtOpenObjectAuditAlarm (IN PUNICODE_STRING SubsystemName, OPTIN PVOID HandleId, IN PUNICODE_STRING ObjectTypeName, IN PUNICODE_STRING ObjectName, OPTIN PSECURITY_DESCRIPTOR SecurityDescriptor, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK GrantedAccess, OPTIN PPRIVILEGE_SET Privileges, IN BOOLEAN ObjectCreation, IN BOOLEAN AccessGranted, OUT PBOOLEAN GenerateOnClose)
 
_NTFN_EXTERN NTSTATUS _NtPrivilegedServiceAuditAlarm (IN PUNICODE_STRING SubsystemName, IN PUNICODE_STRING ServiceName, IN HANDLE ClientToken, IN PPRIVILEGE_SET Privileges, IN BOOLEAN AccessGranted)
 
_NTFN_EXTERN NTSTATUS _NtPrivilegeObjectAuditAlarm (IN PUNICODE_STRING SubsystemName, OPTIN PVOID HandleId, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN PPRIVILEGE_SET Privileges, IN BOOLEAN AccessGranted)
 

Function Documentation

◆ _NtOpenProcessToken()

_NTFN_EXTERN NTSTATUS _NtOpenProcessToken ( IN HANDLE  ProcessHandle,
IN ACCESS_MASK  DesiredAccess,
OUT PHANDLE  TokenHandle 
)

◆ _NtOpenProcessTokenEx()

_NTFN_EXTERN NTSTATUS _NtOpenProcessTokenEx ( IN HANDLE  ProcessHandle,
IN ACCESS_MASK  DesiredAccess,
IN ULONG  HandleAttributes,
OUT PHANDLE  TokenHandle 
)

◆ _NtOpenThreadToken()

_NTFN_EXTERN NTSTATUS _NtOpenThreadToken ( IN HANDLE  ThreadHandle,
IN ACCESS_MASK  DesiredAccess,
IN BOOLEAN  OpenAsSelf,
OUT PHANDLE  TokenHandle 
)

◆ _NtOpenThreadTokenEx()

_NTFN_EXTERN NTSTATUS _NtOpenThreadTokenEx ( IN HANDLE  ThreadHandle,
IN ACCESS_MASK  DesiredAccess,
IN BOOLEAN  OpenAsSelf,
IN ULONG  HandleAttributes,
OUT PHANDLE  TokenHandle 
)

◆ _NtCreateToken()

_NTFN_EXTERN NTSTATUS _NtCreateToken ( OUT PHANDLE  TokenHandle,
IN ACCESS_MASK  DesiredAccess,
IN POBJECT_ATTRIBUTES  ObjectAttributes,
IN TOKEN_TYPE  TokenType,
IN PLUID  AuthenticationId,
IN PLARGE_INTEGER  ExpirationTime,
IN PTOKEN_USER  TokenUser,
IN PTOKEN_GROUPS  TokenGroups,
IN PTOKEN_PRIVILEGES  TokenPrivileges,
IN PTOKEN_OWNER  TokenOwner,
IN PTOKEN_PRIMARY_GROUP  TokenPrimaryGroup,
IN PTOKEN_DEFAULT_DACL  TokenDefaultDacl,
IN PTOKEN_SOURCE  TokenSource 
)

◆ _NtDuplicateToken()

_NTFN_EXTERN NTSTATUS _NtDuplicateToken ( IN HANDLE  ExistingTokenHandle,
IN ACCESS_MASK  DesiredAccess,
OPTIN POBJECT_ATTRIBUTES  ObjectAttributes,
IN BOOLEAN  EffectiveOnly,
IN TOKEN_TYPE  TokenType,
OUT PHANDLE  NewTokenHandle 
)

◆ _NtCompareTokens()

_NTFN_EXTERN NTSTATUS _NtCompareTokens ( IN HANDLE  FirstTokenHandle,
IN HANDLE  SecondTokenHandle,
OUT PBOOLEAN  Equal 
)

◆ _NtPrivilegeCheck()

_NTFN_EXTERN NTSTATUS _NtPrivilegeCheck ( IN HANDLE  ClientToken,
INOUT PPRIVILEGE_SET  RequiredPrivileges,
OUT PBOOLEAN  Result 
)

◆ _NtAdjustPrivilegesToken()

_NTFN_EXTERN NTSTATUS _NtAdjustPrivilegesToken ( IN HANDLE  TokenHandle,
IN BOOLEAN  DisableAllPrivileges,
OPTIN PTOKEN_PRIVILEGES  NewState,
IN ULONG  BufferLength,
OPTOUT PTOKEN_PRIVILEGES  PreviousState,
OPTOUT PULONG  ReturnLength 
)

◆ _NtAdjustGroupsToken()

_NTFN_EXTERN NTSTATUS _NtAdjustGroupsToken ( IN HANDLE  TokenHandle,
IN BOOLEAN  ResetToDefault,
OPTIN PTOKEN_GROUPS  NewState,
OPTIN ULONG  BufferLength,
OPTOUT PTOKEN_GROUPS  PreviousState,
OUT PULONG  ReturnLength 
)

◆ _NtQueryInformationToken()

_NTFN_EXTERN NTSTATUS _NtQueryInformationToken ( IN HANDLE  TokenHandle,
IN TOKEN_INFORMATION_CLASS  TokenInformationClass,
OPTOUT PVOID  TokenInformation,
IN ULONG  TokenInformationLength,
OUT PULONG  ReturnLength 
)

◆ _NtSetInformationToken()

_NTFN_EXTERN NTSTATUS _NtSetInformationToken ( IN HANDLE  TokenHandle,
IN TOKEN_INFORMATION_CLASS  TokenInformationClass,
IN PVOID  TokenInformation,
IN ULONG  TokenInformationLength 
)

◆ _NtImpersonateAnonymousToken()

_NTFN_EXTERN NTSTATUS _NtImpersonateAnonymousToken ( IN HANDLE  Thread)

◆ _NtAllocateLocallyUniqueId()

_NTFN_EXTERN NTSTATUS _NtAllocateLocallyUniqueId ( OUT LUID *  LocallyUniqueId)

◆ _NtAllocateUuids()

_NTFN_EXTERN NTSTATUS _NtAllocateUuids ( OUT PULARGE_INTEGER  Time,
OUT PULONG  Range,
OUT PULONG  Sequence,
OUT PUCHAR  Seed 
)

◆ _NtAccessCheck()

_NTFN_EXTERN NTSTATUS _NtAccessCheck ( IN PSECURITY_DESCRIPTOR  SecurityDescriptor,
IN HANDLE  ClientToken,
IN ACCESS_MASK  DesiredAccess,
IN PGENERIC_MAPPING  GenericMapping,
OUT PPRIVILEGE_SET  PrivilegeSet,
OUT PULONG  ReturnLength,
OUT PACCESS_MASK  GrantedAccess,
OUT PNTSTATUS  AccessStatus 
)

◆ _NtAccessCheckByType()

_NTFN_EXTERN NTSTATUS _NtAccessCheckByType ( IN PSECURITY_DESCRIPTOR  SecurityDescriptor,
IN PSID  PrincipalSelfSid,
IN HANDLE  ClientToken,
IN ACCESS_MASK  DesiredAccess,
IN POBJECT_TYPE_LIST  ObjectTypeList,
IN ULONG  ObjectTypeLength,
IN PGENERIC_MAPPING  GenericMapping,
IN PPRIVILEGE_SET  PrivilegeSet,
INOUT PULONG  PrivilegeSetLength,
OUT PACCESS_MASK  GrantedAccess,
OUT PNTSTATUS  AccessStatus 
)

◆ _NtAccessCheckByTypeResultList()

_NTFN_EXTERN NTSTATUS _NtAccessCheckByTypeResultList ( IN PSECURITY_DESCRIPTOR  SecurityDescriptor,
IN PSID  PrincipalSelfSid,
IN HANDLE  ClientToken,
IN ACCESS_MASK  DesiredAccess,
IN POBJECT_TYPE_LIST  ObjectTypeList,
IN ULONG  ObjectTypeLength,
IN PGENERIC_MAPPING  GenericMapping,
IN PPRIVILEGE_SET  PrivilegeSet,
INOUT PULONG  PrivilegeSetLength,
OUT PACCESS_MASK  GrantedAccess,
OUT PNTSTATUS  AccessStatus 
)

◆ _NtAccessCheckAndAuditAlarm()

_NTFN_EXTERN NTSTATUS _NtAccessCheckAndAuditAlarm ( IN PUNICODE_STRING  SubsystemName,
OPTIN PVOID  HandleId,
IN PUNICODE_STRING  ObjectTypeName,
IN PUNICODE_STRING  ObjectName,
IN PSECURITY_DESCRIPTOR  SecurityDescriptor,
IN ACCESS_MASK  DesiredAccess,
IN PGENERIC_MAPPING  GenericMapping,
IN BOOLEAN  ObjectCreation,
OUT PACCESS_MASK  GrantedAccess,
OUT PNTSTATUS  AccessStatus,
OUT PBOOLEAN  GenerateOnClose 
)

◆ _NtOpenObjectAuditAlarm()

_NTFN_EXTERN NTSTATUS _NtOpenObjectAuditAlarm ( IN PUNICODE_STRING  SubsystemName,
OPTIN PVOID  HandleId,
IN PUNICODE_STRING  ObjectTypeName,
IN PUNICODE_STRING  ObjectName,
OPTIN PSECURITY_DESCRIPTOR  SecurityDescriptor,
IN HANDLE  ClientToken,
IN ACCESS_MASK  DesiredAccess,
IN ACCESS_MASK  GrantedAccess,
OPTIN PPRIVILEGE_SET  Privileges,
IN BOOLEAN  ObjectCreation,
IN BOOLEAN  AccessGranted,
OUT PBOOLEAN  GenerateOnClose 
)

◆ _NtPrivilegedServiceAuditAlarm()

_NTFN_EXTERN NTSTATUS _NtPrivilegedServiceAuditAlarm ( IN PUNICODE_STRING  SubsystemName,
IN PUNICODE_STRING  ServiceName,
IN HANDLE  ClientToken,
IN PPRIVILEGE_SET  Privileges,
IN BOOLEAN  AccessGranted 
)

◆ _NtPrivilegeObjectAuditAlarm()

_NTFN_EXTERN NTSTATUS _NtPrivilegeObjectAuditAlarm ( IN PUNICODE_STRING  SubsystemName,
OPTIN PVOID  HandleId,
IN HANDLE  ClientToken,
IN ACCESS_MASK  DesiredAccess,
IN PPRIVILEGE_SET  Privileges,
IN BOOLEAN  AccessGranted 
)