#define SepAcquireTokenLockExclusive(Token) \
{ \
KeEnterCriticalRegion(); \
- ExAcquireResourceExclusive(((PTOKEN)Token)->TokenLock, TRUE); \
+ ExAcquireResourceExclusiveLite(((PTOKEN)Token)->TokenLock, TRUE); \
}
#define SepAcquireTokenLockShared(Token) \
{ \
KeEnterCriticalRegion(); \
- ExAcquireResourceShared(((PTOKEN)Token)->TokenLock, TRUE); \
+ ExAcquireResourceSharedLite(((PTOKEN)Token)->TokenLock, TRUE); \
}
#define SepReleaseTokenLock(Token) \
{ \
- ExReleaseResource(((PTOKEN)Token)->TokenLock); \
+ ExReleaseResourceLite(((PTOKEN)Token)->TokenLock); \
KeLeaveCriticalRegion(); \
}
);
/* Functions */
+INIT_FUNCTION
BOOLEAN
NTAPI
SeInitSystem(VOID);
-VOID
-NTAPI
-ExpInitLuid(VOID);
-
+INIT_FUNCTION
VOID
NTAPI
SepInitPrivileges(VOID);
+INIT_FUNCTION
BOOLEAN
NTAPI
SepInitSecurityIDs(VOID);
+INIT_FUNCTION
BOOLEAN
NTAPI
SepInitDACLs(VOID);
+INIT_FUNCTION
BOOLEAN
NTAPI
SepInitSDs(VOID);
+BOOLEAN
+NTAPI
+SeRmInitPhase0(VOID);
+
+BOOLEAN
+NTAPI
+SeRmInitPhase1(VOID);
+
VOID
NTAPI
SeDeassignPrimaryToken(struct _EPROCESS *Process);
OUT PBOOLEAN IsChild
);
+NTSTATUS
+NTAPI
+SeIsTokenSibling(
+ IN PTOKEN Token,
+ OUT PBOOLEAN IsSibling
+);
+
NTSTATUS
NTAPI
SepCreateImpersonationTokenDacl(
- PTOKEN Token,
- PTOKEN PrimaryToken,
- PACL *Dacl
+ _In_ PTOKEN Token,
+ _In_ PTOKEN PrimaryToken,
+ _Out_ PACL* Dacl
);
+INIT_FUNCTION
VOID
NTAPI
SepInitializeTokenImplementation(VOID);
NTSTATUS
NTAPI
SeExchangePrimaryToken(
- struct _EPROCESS* Process,
- PACCESS_TOKEN NewToken,
- PACCESS_TOKEN* OldTokenP
+ _In_ PEPROCESS Process,
+ _In_ PACCESS_TOKEN NewAccessToken,
+ _Out_ PACCESS_TOKEN* OldAccessToken
);
VOID
NTSTATUS
NTAPI
SepDuplicateToken(
- PTOKEN Token,
- POBJECT_ATTRIBUTES ObjectAttributes,
- BOOLEAN EffectiveOnly,
- TOKEN_TYPE TokenType,
- SECURITY_IMPERSONATION_LEVEL Level,
- KPROCESSOR_MODE PreviousMode,
- PTOKEN* NewAccessToken
+ _In_ PTOKEN Token,
+ _In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
+ _In_ BOOLEAN EffectiveOnly,
+ _In_ TOKEN_TYPE TokenType,
+ _In_ SECURITY_IMPERSONATION_LEVEL Level,
+ _In_ KPROCESSOR_MODE PreviousMode,
+ _Out_ PTOKEN* NewAccessToken
);
NTSTATUS
_In_ KPROCESSOR_MODE AccessMode,
_In_ BOOLEAN CaptureIfKernel);
+NTSTATUS
+NTAPI
+SeComputeQuotaInformationSize(
+ _In_ PSECURITY_DESCRIPTOR SecurityDescriptor,
+ _Out_ PULONG QuotaInfoSize);
+
NTSTATUS
NTAPI
SepCaptureAcl(
IN BOOLEAN CaptureIfKernel
);
+NTSTATUS
+SepPropagateAcl(
+ _Out_writes_bytes_opt_(DaclLength) PACL AclDest,
+ _Inout_ PULONG AclLength,
+ _In_reads_bytes_(AclSource->AclSize) PACL AclSource,
+ _In_ PSID Owner,
+ _In_ PSID Group,
+ _In_ BOOLEAN IsInherited,
+ _In_ BOOLEAN IsDirectoryObject,
+ _In_ PGENERIC_MAPPING GenericMapping);
+
+PACL
+SepSelectAcl(
+ _In_opt_ PACL ExplicitAcl,
+ _In_ BOOLEAN ExplicitPresent,
+ _In_ BOOLEAN ExplicitDefaulted,
+ _In_opt_ PACL ParentAcl,
+ _In_opt_ PACL DefaultAcl,
+ _Out_ PULONG AclLength,
+ _In_ PSID Owner,
+ _In_ PSID Group,
+ _Out_ PBOOLEAN AclPresent,
+ _Out_ PBOOLEAN IsInherited,
+ _In_ BOOLEAN IsDirectoryObject,
+ _In_ PGENERIC_MAPPING GenericMapping);
+
NTSTATUS
NTAPI
SeDefaultObjectMethod(
_In_ PPRIVILEGE_SET PrivilegeSet,
_In_ BOOLEAN AccessGranted);
+NTSTATUS
+SepRmReferenceLogonSession(
+ PLUID LogonLuid);
+
+NTSTATUS
+SepRmDereferenceLogonSession(
+ PLUID LogonLuid);
+
#endif
/* EOF */