mirror of
https://github.com/mirror/processhacker
synced 2026-06-08 16:03:24 +00:00
2f53e67ee6
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3221 21ef857c-d57f-4fe0-8362-d861dc6d29cd
355 lines
9.2 KiB
C
355 lines
9.2 KiB
C
#ifndef NTSEAPI_H
|
|
#define NTSEAPI_H
|
|
|
|
// Tokens
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCreateToken(
|
|
__out PHANDLE TokenHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in_opt POBJECT_ATTRIBUTES ObjectAttributes,
|
|
__in TOKEN_TYPE TokenType,
|
|
__in PLUID AuthenticationId,
|
|
__in PLARGE_INTEGER ExpirationTime,
|
|
__in PTOKEN_USER User,
|
|
__in PTOKEN_GROUPS Groups,
|
|
__in PTOKEN_PRIVILEGES Privileges,
|
|
__in_opt PTOKEN_OWNER Owner,
|
|
__in PTOKEN_PRIMARY_GROUP PrimaryGroup,
|
|
__in_opt PTOKEN_DEFAULT_DACL DefaultDacl,
|
|
__in PTOKEN_SOURCE TokenSource
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenProcessToken(
|
|
__in HANDLE ProcessHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__out PHANDLE TokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenProcessTokenEx(
|
|
__in HANDLE ProcessHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in ULONG HandleAttributes,
|
|
__out PHANDLE TokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenThreadToken(
|
|
__in HANDLE ThreadHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in BOOLEAN OpenAsSelf,
|
|
__out PHANDLE TokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenThreadTokenEx(
|
|
__in HANDLE ThreadHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in BOOLEAN OpenAsSelf,
|
|
__in ULONG HandleAttributes,
|
|
__out PHANDLE TokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtDuplicateToken(
|
|
__in HANDLE ExistingTokenHandle,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in POBJECT_ATTRIBUTES ObjectAttributes,
|
|
__in BOOLEAN EffectiveOnly,
|
|
__in TOKEN_TYPE TokenType,
|
|
__out PHANDLE NewTokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtQueryInformationToken(
|
|
__in HANDLE TokenHandle,
|
|
__in TOKEN_INFORMATION_CLASS TokenInformationClass,
|
|
__out_bcount(TokenInformationLength) PVOID TokenInformation,
|
|
__in ULONG TokenInformationLength,
|
|
__out PULONG ReturnLength
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtSetInformationToken(
|
|
__in HANDLE TokenHandle,
|
|
__in TOKEN_INFORMATION_CLASS TokenInformationClass,
|
|
__in_bcount(TokenInformationLength) PVOID TokenInformation,
|
|
__in ULONG TokenInformationLength
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAdjustPrivilegesToken(
|
|
__in HANDLE TokenHandle,
|
|
__in BOOLEAN DisableAllPrivileges,
|
|
__in_opt PTOKEN_PRIVILEGES NewState,
|
|
__in ULONG BufferLength,
|
|
__out_bcount_part_opt(BufferLength, *ReturnLength) PTOKEN_PRIVILEGES PreviousState,
|
|
__out __drv_when(PreviousState == NULL, __out_opt) PULONG ReturnLength
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAdjustGroupsToken(
|
|
__in HANDLE TokenHandle,
|
|
__in BOOLEAN ResetToDefault,
|
|
__in_opt PTOKEN_GROUPS NewState,
|
|
__in_opt ULONG BufferLength,
|
|
__out_bcount_part_opt(BufferLength, *ReturnLength) PTOKEN_GROUPS PreviousState,
|
|
__out PULONG ReturnLength
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtFilterToken(
|
|
__in HANDLE ExistingTokenHandle,
|
|
__in ULONG Flags,
|
|
__in_opt PTOKEN_GROUPS SidsToDisable,
|
|
__in_opt PTOKEN_PRIVILEGES PrivilegesToDelete,
|
|
__in_opt PTOKEN_GROUPS RestrictedSids,
|
|
__out PHANDLE NewTokenHandle
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCompareTokens(
|
|
__in HANDLE FirstTokenHandle,
|
|
__in HANDLE SecondTokenHandle,
|
|
__out PBOOLEAN Equal
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrivilegeCheck(
|
|
__in HANDLE ClientToken,
|
|
__inout PPRIVILEGE_SET RequiredPrivileges,
|
|
__out PBOOLEAN Result
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtImpersonateAnonymousToken(
|
|
__in HANDLE ThreadHandle
|
|
);
|
|
|
|
// Access checking
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheck(
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in HANDLE ClientToken,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__out_bcount(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
|
|
__inout PULONG PrivilegeSetLength,
|
|
__out PACCESS_MASK GrantedAccess,
|
|
__out PNTSTATUS AccessStatus
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckByType(
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in_opt PSID PrincipalSelfSid,
|
|
__in HANDLE ClientToken,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in_ecount(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
|
|
__in ULONG ObjectTypeListLength,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__out_bcount(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
|
|
__inout PULONG PrivilegeSetLength,
|
|
__out PACCESS_MASK GrantedAccess,
|
|
__out PNTSTATUS AccessStatus
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckByTypeResultList(
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in_opt PSID PrincipalSelfSid,
|
|
__in HANDLE ClientToken,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in_ecount(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
|
|
__in ULONG ObjectTypeListLength,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__out_bcount(*PrivilegeSetLength) PPRIVILEGE_SET PrivilegeSet,
|
|
__inout PULONG PrivilegeSetLength,
|
|
__out_ecount(ObjectTypeListLength) PACCESS_MASK GrantedAccess,
|
|
__out_ecount(ObjectTypeListLength) PNTSTATUS AccessStatus
|
|
);
|
|
|
|
// Audit alarm
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckAndAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt 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
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckByTypeAndAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in PUNICODE_STRING ObjectTypeName,
|
|
__in PUNICODE_STRING ObjectName,
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in_opt PSID PrincipalSelfSid,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in AUDIT_EVENT_TYPE AuditType,
|
|
__in ULONG Flags,
|
|
__in_ecount_opt(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
|
|
__in ULONG ObjectTypeListLength,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__in BOOLEAN ObjectCreation,
|
|
__out PACCESS_MASK GrantedAccess,
|
|
__out PNTSTATUS AccessStatus,
|
|
__out PBOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckByTypeResultListAndAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in PUNICODE_STRING ObjectTypeName,
|
|
__in PUNICODE_STRING ObjectName,
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in_opt PSID PrincipalSelfSid,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in AUDIT_EVENT_TYPE AuditType,
|
|
__in ULONG Flags,
|
|
__in_ecount_opt(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
|
|
__in ULONG ObjectTypeListLength,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__in BOOLEAN ObjectCreation,
|
|
__out_ecount(ObjectTypeListLength) PACCESS_MASK GrantedAccess,
|
|
__out_ecount(ObjectTypeListLength) PNTSTATUS AccessStatus,
|
|
__out PBOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtAccessCheckByTypeResultListAndAuditAlarmByHandle(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in HANDLE ClientToken,
|
|
__in PUNICODE_STRING ObjectTypeName,
|
|
__in PUNICODE_STRING ObjectName,
|
|
__in PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in_opt PSID PrincipalSelfSid,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in AUDIT_EVENT_TYPE AuditType,
|
|
__in ULONG Flags,
|
|
__in_ecount_opt(ObjectTypeListLength) POBJECT_TYPE_LIST ObjectTypeList,
|
|
__in ULONG ObjectTypeListLength,
|
|
__in PGENERIC_MAPPING GenericMapping,
|
|
__in BOOLEAN ObjectCreation,
|
|
__out_ecount(ObjectTypeListLength) PACCESS_MASK GrantedAccess,
|
|
__out_ecount(ObjectTypeListLength) PNTSTATUS AccessStatus,
|
|
__out PBOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtOpenObjectAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in PUNICODE_STRING ObjectTypeName,
|
|
__in PUNICODE_STRING ObjectName,
|
|
__in_opt PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|
__in HANDLE ClientToken,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in ACCESS_MASK GrantedAccess,
|
|
__in_opt PPRIVILEGE_SET Privileges,
|
|
__in BOOLEAN ObjectCreation,
|
|
__in BOOLEAN AccessGranted,
|
|
__out PBOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrivilegeObjectAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in HANDLE ClientToken,
|
|
__in ACCESS_MASK DesiredAccess,
|
|
__in PPRIVILEGE_SET Privileges,
|
|
__in BOOLEAN AccessGranted
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtCloseObjectAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in BOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtDeleteObjectAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in_opt PVOID HandleId,
|
|
__in BOOLEAN GenerateOnClose
|
|
);
|
|
|
|
NTSYSCALLAPI
|
|
NTSTATUS
|
|
NTAPI
|
|
NtPrivilegedServiceAuditAlarm(
|
|
__in PUNICODE_STRING SubsystemName,
|
|
__in PUNICODE_STRING ServiceName,
|
|
__in HANDLE ClientToken,
|
|
__in PPRIVILEGE_SET Privileges,
|
|
__in BOOLEAN AccessGranted
|
|
);
|
|
|
|
#endif
|