364 switch (OperationType)
367 case SetSecurityDescriptor:
376 OldSecurityDescriptor,
380 case QuerySecurityDescriptor:
387 OldSecurityDescriptor);
389 case DeleteSecurityDescriptor:
394 case AssignSecurityDescriptor:
524 (AuditParameters ==
NULL) ||
_In_ PVOID _In_ ULONG _Out_ PVOID _In_ ULONG _Inout_ PULONG ReturnLength
static OB_SECURITY_METHOD SeDefaultObjectMethod
static GENERIC_MAPPING GenericMapping
static const LUID SeCreateGlobalPrivilege
static const LUID SeChangeNotifyPrivilege
static const LUID SeImpersonatePrivilege
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define PsGetCurrentThread()
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
_Inout_ PLIST_ENTRY _In_ PVOID _In_ PSTRING _In_ BOOLEAN _In_ BOOLEAN _In_ ULONG _In_ PFLT_CALLBACK_DATA _In_opt_ PCHECK_FOR_TRAVERSE_ACCESS _In_opt_ PSECURITY_SUBJECT_CONTEXT SubjectContext
#define CT_ACTIVE_IMPERSONATION_INFO_BIT
#define OBJ_CASE_INSENSITIVE
NTSYSAPI NTSTATUS WINAPI RtlAddAccessAllowedAce(PACL, DWORD, DWORD, PSID)
NTSYSAPI NTSTATUS WINAPI RtlSetDaclSecurityDescriptor(PSECURITY_DESCRIPTOR, BOOLEAN, PACL, BOOLEAN)
#define ExFreePoolWithTag(_P, _T)
#define InitializeObjectAttributes(p, n, a, r, s)
DWORD SECURITY_INFORMATION
DWORD * PSECURITY_INFORMATION
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
NTSYSAPI NTSTATUS NTAPI ZwCreateDirectoryObject(_Out_ PHANDLE DirectoryHandle, _In_ ACCESS_MASK DesiredAccess, _In_ POBJECT_ATTRIBUTES ObjectAttributes)
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL Dacl
NTSYSAPI NTSTATUS NTAPI RtlCreateAcl(PACL Acl, ULONG AclSize, ULONG AclRevision)
NTSYSAPI ULONG NTAPI RtlLengthSid(IN PSID Sid)
NTSYSAPI BOOLEAN NTAPI RtlValidSid(IN PSID Sid)
NTSYSAPI NTSTATUS NTAPI RtlCreateSecurityDescriptor(_Out_ PSECURITY_DESCRIPTOR SecurityDescriptor, _In_ ULONG Revision)
NTSYSAPI NTSTATUS NTAPI RtlValidateUnicodeString(_In_ ULONG Flags, _In_ PCUNICODE_STRING String)
_In_ ULONG _In_ ACCESS_MASK _In_ PSID Sid
#define ACCESS_SYSTEM_SECURITY
ACCESS_MASK * PACCESS_MASK
#define DIRECTORY_TRAVERSE
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define DIRECTORY_ALL_ACCESS
BOOLEAN NTAPI ExLuidInitialization(VOID)
const LUID SeDebugPrivilege
PSID SeAliasAccountOpsSid
const LUID SeSyncAgentPrivilege
VOID NTAPI SepInitializeTokenImplementation(VOID)
Internal function that initializes critical kernel data for access token implementation in SRM.
const LUID SeSystemProfilePrivilege
const LUID SeCreateTokenPrivilege
const LUID SeBackupPrivilege
PTOKEN NTAPI SepCreateSystemProcessToken(VOID)
Creates the system process token.
const LUID SeAssignPrimaryTokenPrivilege
const LUID SeSystemtimePrivilege
BOOLEAN NTAPI SeRmInitPhase0(VOID)
Manages the phase 0 initialization of the security reference monitoring module of the kernel.
const LUID SeTcbPrivilege
PSECURITY_DESCRIPTOR SePublicDefaultSd
PSID SeAliasPowerUsersSid
PTOKEN SepCreateSystemAnonymousLogonTokenNoEveryone(VOID)
Creates the anonymous logon token for the system. This kind of token doesn't include the everyone SID...
const LUID SeManageVolumePrivilege
const LUID SeRestorePrivilege
BOOLEAN NTAPI SepInitSecurityIDs(VOID)
Initializes all the SIDs known in the system.
const LUID SeRemoteShutdownPrivilege
const LUID SeLoadDriverPrivilege
BOOLEAN NTAPI SepInitDACLs(VOID)
Initializes known discretionary access control lists in the system upon kernel and Executive initiali...
const LUID SeIncreaseBasePriorityPrivilege
const LUID SeLockMemoryPrivilege
const LUID SeCreatePermanentPrivilege
PTOKEN SepCreateSystemAnonymousLogonToken(VOID)
Creates the anonymous logon token for the system. The difference between this token and the other one...
const LUID SeUndockPrivilege
const LUID SeCreatePagefilePrivilege
const LUID SeTakeOwnershipPrivilege
const LUID SeProfileSingleProcessPrivilege
const LUID SeShutdownPrivilege
const LUID SeSystemEnvironmentPrivilege
const LUID SeSecurityPrivilege
const LUID SeUnsolicitedInputPrivilege
const LUID SeEnableDelegationPrivilege
BOOLEAN NTAPI SepInitSDs(VOID)
Initializes the known security descriptors in the system.
PSID SeAuthenticatedUsersSid
const LUID SeAuditPrivilege
const LUID SeIncreaseQuotaPrivilege
VOID NTAPI SepInitPrivileges(VOID)
Initializes the privileges during the startup phase of the security manager module....
NTSTATUS NTAPI ObDeassignSecurity(IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor)
NTSTATUS NTAPI ObAssignObjectSecurityDescriptor(IN PVOID Object, IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL, IN POOL_TYPE PoolType)
VOID FASTCALL ObInitializeFastReference(IN PEX_FAST_REF FastRef, IN PVOID Object)
NTSTATUS NTAPI ObSetSecurityDescriptorInfo(IN PVOID Object, IN PSECURITY_INFORMATION SecurityInformation, IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping)
NTSTATUS NTAPI ObQuerySecurityDescriptorInfo(IN PVOID Object, IN PSECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PULONG Length, IN PSECURITY_DESCRIPTOR *OutputSecurityDescriptor)
NTSTATUS NTAPI ObInsertObject(IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle)
#define PspClearCrossThreadFlag(Thread, Flag)
VOID NTAPI KeBugCheckEx(_In_ ULONG BugCheckCode, _In_ ULONG_PTR BugCheckParameter1, _In_ ULONG_PTR BugCheckParameter2, _In_ ULONG_PTR BugCheckParameter3, _In_ ULONG_PTR BugCheckParameter4)
ULONG ExpInitializationPhase
PTOKEN SeAnonymousLogonToken
BOOLEAN NTAPI SeInitSystem(VOID)
Main security manager initialization function.
NTSTATUS NTAPI SeReportSecurityEvent(_In_ ULONG Flags, _In_ PUNICODE_STRING SourceName, _In_opt_ PSID UserSid, _In_ PSE_ADT_PARAMETER_ARRAY AuditParameters)
Report a security event to the security manager.
_Const_ NTSTATUS NTAPI SeSetAuditParameter(_Inout_ PSE_ADT_PARAMETER_ARRAY AuditParameters, _In_ SE_ADT_PARAMETER_TYPE Type, _In_range_(<, SE_MAX_AUDIT_PARAMETERS) ULONG Index, _In_reads_(_Inexpressible_("depends on SE_ADT_PARAMETER_TYPE")) PVOID Data)
Sets an array of audit parameters for later security auditing use.
BOOLEAN NTAPI SepInitializationPhase1(VOID)
Handles the phase 1 procedure of the SRM initialization.
VOID NTAPI SeSetSecurityAccessMask(_In_ SECURITY_INFORMATION SecurityInformation, _Out_ PACCESS_MASK DesiredAccess)
Sets the access mask for a security information context.
PTOKEN SeAnonymousLogonTokenNoEveryone
static BOOLEAN SepInitExports(VOID)
Initializes all the security exports upon initialization phase of the module.
ERESOURCE SepSubjectContextLock
VOID NTAPI SeQuerySecurityAccessMask(_In_ SECURITY_INFORMATION SecurityInformation, _Out_ PACCESS_MASK DesiredAccess)
Queries the access mask from a security information context.
BOOLEAN NTAPI SepInitializationPhase0(VOID)
Handles the phase 0 procedure of the SRM initialization.
LUID SeUnsolicitedInputPrivilege
LUID SeIncreaseBasePriorityPrivilege
LUID SeAssignPrimaryTokenPrivilege
LUID SeLoadDriverPrivilege
LUID SeLockMemoryPrivilege
LUID SeProfileSingleProcessPrivilege
LUID SeIncreaseQuotaPrivilege
LUID SeEnableDelegationPrivilege
LUID SeTakeOwnershipPrivilege
LUID SeSystemtimePrivilege
PSID SeAuthenticatedUsersSid
LUID SeSystemProfilePrivilege
PSID SeAliasAccountOpsSid
LUID SeCreateGlobalPrivilege
LUID SeCreatePagefilePrivilege
LUID SeImpersonatePrivilege
LUID SeChangeNotifyPrivilege
LUID SeSyncAgentPrivilege
LUID SeSystemEnvironmentPrivilege
LUID SeCreateTokenPrivilege
PSID SeAliasPowerUsersSid
LUID SeManageVolumePrivilege
LUID SeCreatePermanentPrivilege
LUID SeRemoteShutdownPrivilege
PSID_AND_ATTRIBUTES UserAndGroups
VOID NTAPI SeReleaseSubjectContext(_In_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
Releases both the primary and client tokens of a security subject context.
VOID NTAPI SeCaptureSubjectContext(_Out_ PSECURITY_SUBJECT_CONTEXT SubjectContext)
Captures the security subject context of the calling thread and calling process.
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_In_ WDFCOLLECTION _In_ ULONG Index
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
_Must_inspect_result_ _In_ ULONG Flags
#define ExInitializeResource
_Out_ PHANDLE EventHandle
#define PsGetCurrentProcess
#define DACL_SECURITY_INFORMATION
#define OWNER_SECURITY_INFORMATION
#define SECURITY_DESCRIPTOR_REVISION
#define GROUP_SECURITY_INFORMATION
#define SACL_SECURITY_INFORMATION
enum _SE_ADT_PARAMETER_TYPE SE_ADT_PARAMETER_TYPE
#define SE_MAX_AUDIT_PARAMETERS