#include "tokenp.h"
#include <sertlp.h>
Go to the source code of this file.
Enumerations | |
enum | ACCESS_MASK_FIELD_TO_UPDATE { UpdateRemaining, UpdateCurrentGranted, UpdateCurrentDenied } |
Functions | |
VOID | SepUpdateParentTypeList (IN PIOBJECT_TYPE_LIST ObjectTypeList, IN ULONG ObjectTypeListLength, IN ULONG StartIndex) |
VOID | SepAddAccessTypeList (IN PIOBJECT_TYPE_LIST ObjectTypeList, IN ULONG ObjectTypeListLength, IN ULONG StartIndex, IN ACCESS_MASK AccessMask, IN ACCESS_MASK_FIELD_TO_UPDATE FieldToUpdate) |
NTSTATUS | SeAccessCheckByType (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL, IN ULONG ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, IN OUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus, IN BOOLEAN ReturnResultList) |
VOID | SepMaximumAccessCheck (IN PTOKEN EToken, IN PTOKEN PrimaryToken, IN PACL Dacl, IN PSID PrincipalSelfSid, IN ULONG LocalTypeListLength, IN PIOBJECT_TYPE_LIST LocalTypeList, IN ULONG ObjectTypeListLength, IN BOOLEAN Restricted) |
VOID | SepNormalAccessCheck (IN ACCESS_MASK Remaining, IN PTOKEN EToken, IN PTOKEN PrimaryToken, IN PACL Dacl, IN PSID PrincipalSelfSid, IN ULONG LocalTypeListLength, IN PIOBJECT_TYPE_LIST LocalTypeList, IN ULONG ObjectTypeListLength, IN BOOLEAN Restricted) |
BOOLEAN | SepSidInTokenEx (IN PACCESS_TOKEN AToken, IN PSID PrincipalSelfSid, IN PSID Sid, IN BOOLEAN DenyAce, IN BOOLEAN Restricted) |
NTSTATUS | SeCaptureObjectTypeList (IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL, IN ULONG ObjectTypeListLength, IN KPROCESSOR_MODE RequestorMode, OUT PIOBJECT_TYPE_LIST *CapturedObjectTypeList) |
VOID | SeFreeCapturedObjectTypeList (IN PVOID ObjectTypeList) |
BOOLEAN | SepObjectInTypeList (IN GUID *ObjectType, IN PIOBJECT_TYPE_LIST ObjectTypeList, IN ULONG ObjectTypeListLength, OUT PULONG ReturnedIndex) |
BOOLEAN | SepSidInToken (IN PACCESS_TOKEN AToken, IN PSID PrincipalSelfSid, IN PSID Sid, IN BOOLEAN DenyAce) |
VOID | SepAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN PTOKEN PrimaryToken, IN PTOKEN ClientToken OPTIONAL, IN ACCESS_MASK DesiredAccess, IN PIOBJECT_TYPE_LIST ObjectTypeList OPTIONAL, IN ULONG ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, IN ACCESS_MASK PreviouslyGrantedAccess, IN KPROCESSOR_MODE PreviousMode, OUT PACCESS_MASK GrantedAccess, OUT PPRIVILEGE_SET *Privileges OPTIONAL, OUT PNTSTATUS AccessStatus, IN BOOLEAN ReturnResultList, OUT PBOOLEAN ReturnSomeAccessGranted, OUT PBOOLEAN ReturnSomeAccessDenied) |
NTSTATUS | NtAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, IN OUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus) |
NTSTATUS | NtAccessCheckByType (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL, IN ULONG ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, IN OUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus) |
NTSTATUS | NtAccessCheckByTypeResultList (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSID PrincipalSelfSid, IN HANDLE ClientToken, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE_LIST ObjectTypeList OPTIONAL, IN ULONG ObjectTypeListLength, IN PGENERIC_MAPPING GenericMapping, OUT PPRIVILEGE_SET PrivilegeSet, IN OUT PULONG PrivilegeSetLength, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus) |
VOID | SeFreePrivileges (IN PPRIVILEGE_SET Privileges) |
BOOLEAN | SeAccessCheck (IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext, IN BOOLEAN SubjectContextLocked, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK PreviouslyGrantedAccess, OUT PPRIVILEGE_SET *Privileges OPTIONAL, IN PGENERIC_MAPPING GenericMapping, IN KPROCESSOR_MODE AccessMode, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus) |
BOOLEAN | SeProxyAccessCheck (IN PUNICODE_STRING Volume, IN PUNICODE_STRING RelativePath, IN BOOLEAN ContainerObject, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext, IN BOOLEAN SubjectContextLocked, IN ACCESS_MASK DesiredAccess, IN ACCESS_MASK PreviouslyGrantedAccess, OUT PPRIVILEGE_SET *Privileges OPTIONAL, IN PGENERIC_MAPPING GenericMapping, IN KPROCESSOR_MODE AccessMode, OUT PACCESS_MASK GrantedAccess, OUT PNTSTATUS AccessStatus) |
NTSTATUS | SePrivilegePolicyCheck (IN OUT PACCESS_MASK RemainingDesiredAccess, IN OUT PACCESS_MASK PreviouslyGrantedAccess, IN PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext OPTIONAL, IN PACCESS_TOKEN ExplicitToken OPTIONAL, OUT PPRIVILEGE_SET *PrivilegeSet, IN KPROCESSOR_MODE PreviousMode) |
BOOLEAN | SepTokenIsOwner (IN PACCESS_TOKEN EffectiveToken, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN TokenLocked) |
BOOLEAN | SeFastTraverseCheck (PSECURITY_DESCRIPTOR SecurityDescriptor, ACCESS_MASK TraverseAccess, KPROCESSOR_MODE AccessMode) |
|
Definition at line 55 of file accessck.c.
|
|
Definition at line 2413 of file accessck.c. References ClientToken, FALSE, NULL, PAGED_CODE, and SeAccessCheckByType(). Referenced by CreateDAclToken(), and TestAccessCheck().
|
|
Definition at line 2501 of file accessck.c. References ClientToken, FALSE, PAGED_CODE, and SeAccessCheckByType().
|
|
Definition at line 2602 of file accessck.c. References ClientToken, PAGED_CODE, SeAccessCheckByType(), and TRUE.
|
|
Definition at line 3323 of file accessck.c. References DbgPrint, EffectiveToken, FALSE, KernelMode, NULL, PAGED_CODE, PSECURITY_SUBJECT_CONTEXT, SeAssertMappedCanonicalAccess, SeLockSubjectContext(), SepAccessCheck(), SepDumpSecurityDescriptor(), SepDumpTokenInfo(), SepTokenIsOwner(), SeUnlockSubjectContext(), and TRUE. Referenced by CmpCheckCreateAccess(), CmpCheckNotifyAccess(), IopParseDevice(), ObCheckCreateObjectAccess(), ObCheckObjectAccess(), ObpCheckObjectReference(), ObpCheckTraverseAccess(), PspCreateProcess(), PspCreateThread(), PspSetPrimaryToken(), SeProxyAccessCheck(), and TestAccessCheck().
|
|
Definition at line 2704 of file accessck.c. References ASSERT, ClientToken, ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), FALSE, IsValidElementCount, KernelMode, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), NULL, ObDereferenceObject, ObReferenceObjectByHandle(), PAGED_CODE, PagedPool, _SECURITY_SUBJECT_CONTEXT::PrimaryToken, ProbeAndReadUlong, ProbeForRead, ProbeForWrite(), ProbeForWriteUlong, PTOKEN, SeCaptureObjectTypeList(), SeCaptureSecurityDescriptor(), SeCaptureSid(), SeCaptureSubjectContext(), SECURITY_SUBJECT_CONTEXT, SeFreeCapturedObjectTypeList(), SeFreePrivileges(), SepAccessCheck(), SepAcquireTokenReadLock, SepPrivilegeSetSize, SepReleaseTokenReadLock, SePrivilegePolicyCheck(), SepTokenIsOwner(), SepTokenObjectType, SeReleaseSecurityDescriptor(), SeReleaseSid(), SeReleaseSubjectContext(), Status, Token, and TRUE. Referenced by NtAccessCheck(), NtAccessCheckByType(), and NtAccessCheckByTypeResultList().
|
|
Definition at line 144 of file accessck.c. References _IOBJECT_TYPE_LIST::CurrentDenied, _IOBJECT_TYPE_LIST::CurrentGranted, ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), _IOBJECT_TYPE_LIST::Flags, IOBJECT_TYPE_LIST, IsValidElementCount, _IOBJECT_TYPE_LIST::Level, NTSTATUS(), NULL, _IOBJECT_TYPE_LIST::ObjectType, PAGED_CODE, PagedPool, _IOBJECT_TYPE_LIST::ParentIndex, ProbeForRead, _IOBJECT_TYPE_LIST::Remaining, Status, UserMode, and USHORT. Referenced by SeAccessCheckByType(), and SepAccessCheckAndAuditAlarm().
|
|
Definition at line 3871 of file accessck.c. References Dacl, FALSE, FirstAce, KernelMode, NextAce, NULL, PAGED_CODE, RtlEqualSid(), SeWorldSid, and TRUE. Referenced by IopParseDevice(), ObpCheckTraverseAccess(), ObpProcessDosDeviceSymbolicLink(), and ObSetSecurityDescriptorInfo().
|
|
Definition at line 353 of file accessck.c. References ExFreePool(), NULL, and PAGED_CODE. Referenced by SeAccessCheckByType(), and SepAccessCheckAndAuditAlarm().
|
|
Definition at line 3294 of file accessck.c. References ExFreePool(), and PAGED_CODE. Referenced by IopParseDevice(), ObCheckCreateObjectAccess(), ObCheckObjectAccess(), ObpCheckTraverseAccess(), and SeAccessCheckByType().
|
|
Definition at line 1564 of file accessck.c. References ASSERT, ClientToken, _IOBJECT_TYPE_LIST::CurrentGranted, Dacl, FALSE, FirstAce, Index, NextAce, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PrimaryToken, PTOKEN, _IOBJECT_TYPE_LIST::Remaining, SeAssertMappedCanonicalAccess, SepAddAccessTypeList(), SepAssemblePrivileges(), SepDumpSecurityDescriptor(), SepDumpTokenInfo(), SepMaximumAccessCheck(), SepNormalAccessCheck(), SepObjectInTypeList(), SepSidInToken(), SepSinglePrivilegeCheck(), SeSecurityPrivilege, SeTakeOwnershipPrivilege, SeTokenIsRestricted(), Status, TRUE, and UpdateRemaining. Referenced by SeAccessCheck(), SeAccessCheckByType(), and SepAccessCheckAndAuditAlarm().
|
|
Definition at line 574 of file accessck.c. References FALSE, Index, PAGED_CODE, SepUpdateParentTypeList(), TRUE, UpdateCurrentDenied, UpdateCurrentGranted, and UpdateRemaining. Referenced by SepAccessCheck(), SepMaximumAccessCheck(), and SepNormalAccessCheck().
|
|
Definition at line 992 of file accessck.c. References Dacl, FALSE, FirstAce, Index, NextAce, NULL, PrimaryToken, Restricted, SepAddAccessTypeList(), SepObjectInTypeList(), SepSidInTokenEx(), TRUE, UpdateCurrentDenied, and UpdateCurrentGranted. Referenced by SepAccessCheck().
|
|
Definition at line 1304 of file accessck.c. References Dacl, FALSE, FirstAce, Index, NextAce, NULL, PrimaryToken, Restricted, SepAddAccessTypeList(), SepObjectInTypeList(), SepSidInTokenEx(), TRUE, and UpdateRemaining. Referenced by SepAccessCheck().
|
|
Definition at line 388 of file accessck.c. References ASSERT, FALSE, Index, PAGED_CODE, and TRUE. Referenced by SepAccessCheck(), SepExamineSaclEx(), SepMaximumAccessCheck(), and SepNormalAccessCheck().
|
|
Definition at line 3652 of file accessck.c. References ANYSIZE_ARRAY, EffectiveToken, ExAllocatePoolWithTag, FALSE, NULL, PAGED_CODE, PagedPool, PTOKEN, SepSinglePrivilegeCheck(), SeSecurityPrivilege, SeTakeOwnershipPrivilege, Token, and TRUE. Referenced by SeAccessCheckByType(), and SepAccessCheckAndAuditAlarm().
|
|
Definition at line 3564 of file accessck.c. References SeAccessCheck().
|
|
Definition at line 733 of file accessck.c. References FALSE, NULL, PAGED_CODE, PTOKEN, RtlEqualSid(), SepDumpTokenInfo(), SePrincipalSelfSid, Token, and TRUE. Referenced by SepAccessCheck(), SepExamineSacl(), SepExamineSaclEx(), and SepTokenIsOwner().
|
|
Definition at line 856 of file accessck.c. References FALSE, NULL, PAGED_CODE, PTOKEN, Restricted, RtlEqualSid(), SepDumpTokenInfo(), SePrincipalSelfSid, Token, and TRUE. Referenced by SepMaximumAccessCheck(), SepNormalAccessCheck(), and SepTokenIsOwner().
|
|
Definition at line 3796 of file accessck.c. References ASSERT, EffectiveToken, FALSE, NULL, Owner, PAGED_CODE, PTOKEN, SepAcquireTokenReadLock, SepReleaseTokenReadLock, SepSidInToken(), SepSidInTokenEx(), Token, TOKEN_IS_RESTRICTED, and TRUE. Referenced by SeAccessCheck(), SeAccessCheckByType(), and SepAccessCheckAndAuditAlarm().
|
|
Definition at line 441 of file accessck.c. References Index, and PAGED_CODE. Referenced by SepAddAccessTypeList().
|