mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
Added ObGetObjectPointerCount() and SetokenImpersonationLevel().
svn path=/trunk/; revision=2640
This commit is contained in:
parent
fc7aea5826
commit
e21b78b3e3
7 changed files with 157 additions and 34 deletions
|
@ -19,6 +19,9 @@ ObfReferenceObject(IN PVOID Object);
|
|||
#define ObReferenceObject(Object) \
|
||||
ObfReferenceObject(Object)
|
||||
|
||||
ULONG STDCALL
|
||||
ObGetObjectPointerCount(IN PVOID Object);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ObInsertObject(PVOID Object,
|
||||
PACCESS_STATE PassedAccessState,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef _INCLUDE_DDK_SEFUNCS_H
|
||||
#define _INCLUDE_DDK_SEFUNCS_H
|
||||
/* $Id: sefuncs.h,v 1.15 2002/02/20 20:09:52 ekohl Exp $ */
|
||||
/* $Id: sefuncs.h,v 1.16 2002/02/22 13:34:36 ekohl Exp $ */
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeAccessCheck(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
|
@ -8,24 +8,43 @@ SeAccessCheck(IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
|||
IN BOOLEAN SubjectContextLocked,
|
||||
IN ACCESS_MASK DesiredAccess,
|
||||
IN ACCESS_MASK PreviouslyGrantedAccess,
|
||||
OUT PPRIVILEGE_SET* Privileges,
|
||||
OUT PPRIVILEGE_SET* Privileges OPTIONAL,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
OUT PACCESS_MODE GrantedAccess,
|
||||
OUT PNTSTATUS AccessStatus);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeAssignSecurity(PSECURITY_DESCRIPTOR ParentDescriptor,
|
||||
PSECURITY_DESCRIPTOR ExplicitDescriptor,
|
||||
PSECURITY_DESCRIPTOR* NewDescriptor,
|
||||
BOOLEAN IsDirectoryObject,
|
||||
PSECURITY_SUBJECT_CONTEXT SubjectContext,
|
||||
PGENERIC_MAPPING GenericMapping,
|
||||
POOL_TYPE PoolType);
|
||||
SeAppendPrivileges(IN PACCESS_STATE AccessState,
|
||||
IN PPRIVILEGE_SET Privileges);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeAssignSecurity(IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR ExplicitDescriptor,
|
||||
OUT PSECURITY_DESCRIPTOR* NewDescriptor,
|
||||
IN BOOLEAN IsDirectoryObject,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
|
||||
IN PGENERIC_MAPPING GenericMapping,
|
||||
IN POOL_TYPE PoolType);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeAuditingFileEvents(IN BOOLEAN AccessGranted,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeAuditingFileOrGlobalEvents(IN BOOLEAN AccessGranted,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
VOID STDCALL
|
||||
SeCaptureSubjectContext(OUT PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeCreateAccessState(OUT PACCESS_STATE AccessState,
|
||||
IN PVOID AuxData,
|
||||
IN ACCESS_MASK AccessMask,
|
||||
IN PGENERIC_MAPPING Mapping);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeCreateClientSecurity(IN struct _ETHREAD *Thread,
|
||||
IN PSECURITY_QUALITY_OF_SERVICE Qos,
|
||||
|
@ -33,20 +52,98 @@ SeCreateClientSecurity(IN struct _ETHREAD *Thread,
|
|||
OUT PSECURITY_CLIENT_CONTEXT ClientContext);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeDeassignSecurity(PSECURITY_DESCRIPTOR* SecurityDescriptor);
|
||||
SeDeassignSecurity(IN OUT PSECURITY_DESCRIPTOR* SecurityDescriptor);
|
||||
|
||||
VOID STDCALL
|
||||
SeDeleteObjectAuditAlarm(IN PVOID Object,
|
||||
IN HANDLE Handle);
|
||||
|
||||
VOID STDCALL
|
||||
SeFreePrivileges(IN PPRIVILEGE_SET Privileges);
|
||||
|
||||
VOID STDCALL
|
||||
SeImpersonateClient(IN PSECURITY_CLIENT_CONTEXT ClientContext,
|
||||
IN struct _ETHREAD *ServerThread OPTIONAL);
|
||||
|
||||
VOID STDCALL
|
||||
SeReleaseSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
SeLockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeMarkLogonSessionForTerminationNotification(IN PLUID LogonId);
|
||||
|
||||
VOID STDCALL
|
||||
SeOpenObjectAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
|
||||
IN PVOID Object OPTIONAL,
|
||||
IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN PACCESS_STATE AccessState,
|
||||
IN BOOLEAN ObjectCreated,
|
||||
IN BOOLEAN AccessGranted,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
OUT PBOOLEAN GenerateOnClose);
|
||||
|
||||
VOID STDCALL
|
||||
SeOpenObjectForDeleteAuditAlarm(IN PUNICODE_STRING ObjectTypeName,
|
||||
IN PVOID Object OPTIONAL,
|
||||
IN PUNICODE_STRING AbsoluteObjectName OPTIONAL,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN PACCESS_STATE AccessState,
|
||||
IN BOOLEAN ObjectCreated,
|
||||
IN BOOLEAN AccessGranted,
|
||||
IN KPROCESSOR_MODE AccessMode,
|
||||
OUT PBOOLEAN GenerateOnClose);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeSinglePrivilegeCheck(LUID PrivilegeValue,
|
||||
KPROCESSOR_MODE PreviousMode);
|
||||
SePrivilegeCheck(IN OUT PPRIVILEGE_SET RequiredPrivileges,
|
||||
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
|
||||
IN KPROCESSOR_MODE AccessMode);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeQueryAuthenticationIdToken(IN PACCESS_TOKEN Token,
|
||||
OUT PLUID LogonId);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeQuerySecurityDescriptorInfo(IN PSECURITY_INFORMATION SecurityInformation,
|
||||
OUT PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN OUT PULONG Length,
|
||||
IN PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeRegisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
|
||||
|
||||
VOID STDCALL
|
||||
SeReleaseSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
VOID STDCALL
|
||||
SeSetAccessStateGenericMapping(IN PACCESS_STATE AccessState,
|
||||
IN PGENERIC_MAPPING GenericMapping);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeSetSecurityDescriptorInfo(IN PVOID Object OPTIONAL,
|
||||
IN PSECURITY_INFORMATION SecurityInformation,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor,
|
||||
IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
|
||||
IN POOL_TYPE PoolType,
|
||||
IN PGENERIC_MAPPING GenericMapping);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeSinglePrivilegeCheck(IN LUID PrivilegeValue,
|
||||
IN KPROCESSOR_MODE PreviousMode);
|
||||
|
||||
SECURITY_IMPERSONATION_LEVEL STDCALL
|
||||
SeTokenImpersonationLevel(IN PACCESS_TOKEN Token);
|
||||
|
||||
TOKEN_TYPE STDCALL
|
||||
SeTokenType(IN PACCESS_TOKEN Token);
|
||||
|
||||
VOID STDCALL
|
||||
SeUnlockSubjectContext(IN PSECURITY_SUBJECT_CONTEXT SubjectContext);
|
||||
|
||||
NTSTATUS STDCALL
|
||||
SeUnregisterLogonSessionTerminatedRoutine(IN PSE_LOGON_SESSION_TERMINATED_ROUTINE CallbackRoutine);
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeValidSecurityDescriptor(IN ULONG Length,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor);
|
||||
|
||||
#endif /* ndef _INCLUDE_DDK_SEFUNCS_H */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: setypes.h,v 1.6 2002/02/20 20:09:52 ekohl Exp $
|
||||
/* $Id: setypes.h,v 1.7 2002/02/22 13:34:36 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory for details
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -155,6 +155,10 @@ typedef struct _SE_EXPORTS
|
|||
PSID SeAliasBackupOpsSid;
|
||||
} SE_EXPORTS, *PSE_EXPORTS;
|
||||
|
||||
|
||||
typedef NTSTATUS STDCALL
|
||||
(*PSE_LOGON_SESSION_TERMINATED_ROUTINE)(IN PLUID LogonId);
|
||||
|
||||
#endif
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: object.c,v 1.42 2002/02/19 00:09:25 ekohl Exp $
|
||||
/* $Id: object.c,v 1.43 2002/02/22 13:35:50 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -444,6 +444,7 @@ NTSTATUS ObPerformRetentionChecks(POBJECT_HEADER Header)
|
|||
return(STATUS_SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
ULONG ObGetReferenceCount(PVOID ObjectBody)
|
||||
{
|
||||
POBJECT_HEADER Header = BODY_TO_HEADER(ObjectBody);
|
||||
|
@ -520,4 +521,16 @@ VOID FASTCALL ObfDereferenceObject (PVOID Object)
|
|||
ObPerformRetentionChecks(Header);
|
||||
}
|
||||
|
||||
|
||||
ULONG STDCALL
|
||||
ObGetObjectPointerCount(PVOID Object)
|
||||
{
|
||||
POBJECT_HEADER Header;
|
||||
|
||||
assert(Object);
|
||||
Header = BODY_TO_HEADER(Object);
|
||||
|
||||
return(Header->RefCount);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -17,11 +17,12 @@
|
|||
|
||||
/* FUNCTIONS ***************************************************************/
|
||||
|
||||
NTSTATUS STDCALL NtQuerySecurityObject(IN HANDLE ObjectHandle,
|
||||
IN CINT SecurityObjectInformationClass,
|
||||
OUT PVOID SecurityObjectInformation,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ReturnLength)
|
||||
NTSTATUS STDCALL
|
||||
NtQuerySecurityObject(IN HANDLE ObjectHandle,
|
||||
IN CINT SecurityObjectInformationClass,
|
||||
OUT PVOID SecurityObjectInformation,
|
||||
IN ULONG Length,
|
||||
OUT PULONG ReturnLength)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PVOID Object;
|
||||
|
@ -58,15 +59,12 @@ NTSTATUS STDCALL NtQuerySecurityObject(IN HANDLE ObjectHandle,
|
|||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
NtSetSecurityObject(
|
||||
IN HANDLE Handle,
|
||||
IN SECURITY_INFORMATION SecurityInformation,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor
|
||||
)
|
||||
NTSTATUS STDCALL
|
||||
NtSetSecurityObject(IN HANDLE Handle,
|
||||
IN SECURITY_INFORMATION SecurityInformation,
|
||||
IN PSECURITY_DESCRIPTOR SecurityDescriptor)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: priv.c,v 1.2 2002/02/20 20:15:38 ekohl Exp $
|
||||
/* $Id: priv.c,v 1.3 2002/02/22 13:36:24 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -274,8 +274,8 @@ SePrivilegeCheck(PPRIVILEGE_SET Privileges,
|
|||
}
|
||||
|
||||
BOOLEAN STDCALL
|
||||
SeSinglePrivilegeCheck(LUID PrivilegeValue,
|
||||
KPROCESSOR_MODE PreviousMode)
|
||||
SeSinglePrivilegeCheck(IN LUID PrivilegeValue,
|
||||
IN KPROCESSOR_MODE PreviousMode)
|
||||
{
|
||||
SECURITY_SUBJECT_CONTEXT SubjectContext;
|
||||
BOOLEAN r;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $Id: token.c,v 1.13 2002/02/20 20:15:38 ekohl Exp $
|
||||
/* $Id: token.c,v 1.14 2002/02/22 13:36:24 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
|
@ -627,6 +627,14 @@ NtCreateToken(OUT PHANDLE TokenHandle,
|
|||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
SECURITY_IMPERSONATION_LEVEL STDCALL
|
||||
SeTokenImpersonationLevel(IN PACCESS_TOKEN Token)
|
||||
{
|
||||
return(Token->ImpersonationLevel);
|
||||
}
|
||||
|
||||
|
||||
TOKEN_TYPE STDCALL
|
||||
SeTokenType(IN PACCESS_TOKEN Token)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue