#include "ntos.h"
#include "seopaque.h"
#include <zwapi.h>
Go to the source code of this file.
Classes | |
struct | _SECURITY_DESCRIPTOR_HEADER |
Defines | |
#define | ObpBeginTypeSpecificCallOut(IRQL) |
#define | ObpEndTypeSpecificCallOut(IRQL, str, ot, o) |
#define | ObpValidateIrql(str) |
#define | ObpIncrPointerCount(np) InterlockedIncrement( &np->PointerCount ) |
#define | ObpDecrPointerCount(np) InterlockedDecrement( &np->PointerCount ) |
#define | ObpDecrPointerCountWithResult(np) (InterlockedDecrement( &np->PointerCount ) == 0) |
#define | ObpIncrHandleCount(np) InterlockedIncrement( &np->HandleCount ) |
#define | ObpDecrHandleCount(np) (InterlockedDecrement( &np->HandleCount ) == 0) |
#define | ObpEnterObjectTypeMutex(_ObjectType) |
#define | ObpLeaveObjectTypeMutex(_ObjectType) |
#define | ObpEnterRootDirectoryMutex() |
#define | ObpLeaveRootDirectoryMutex() |
#define | ObpGetObjectTable() (PsGetCurrentProcess()->ObjectTable) |
#define | ObpCentralizedSecurity(_ObjectType) ((_ObjectType)->TypeInfo.SecurityProcedure == SeDefaultObjectMethod) |
#define | OBP_MAX_DEFINED_OBJECT_TYPES 24 |
#define | OBJ_PROTECT_CLOSE 0x1 |
#define | OBJ_AUDIT_OBJECT_CLOSE 0x00000004L |
#define | OBJ_HANDLE_ATTRIBUTES (OBJ_PROTECT_CLOSE | OBJ_INHERIT | OBJ_AUDIT_OBJECT_CLOSE) |
#define | SD_TO_SD_HEADER(_sd) CONTAINING_RECORD( (_sd), SECURITY_DESCRIPTOR_HEADER, SecurityDescriptor ) |
#define | LINK_TO_SD_HEADER(_link) CONTAINING_RECORD( (_link), SECURITY_DESCRIPTOR_HEADER, Link ) |
#define | NEXT_SDHEADER(_sdh) |
#define | PREV_SDHEADER(_sdh) |
#define | SECURITY_DESCRIPTOR_CACHE_ENTRIES 256 |
#define | OBJECT_NAME_BUFFER_SIZE 248 |
#define | KERNEL_HANDLE_MASK ((ULONG_PTR)((LONG)0x80000000)) |
#define | IsKernelHandle(H, M) |
#define | EncodeKernelHandle(H) (HANDLE)(KERNEL_HANDLE_MASK | (ULONG_PTR)(H)) |
#define | DecodeKernelHandle(H) (HANDLE)(KERNEL_HANDLE_MASK ^ (ULONG_PTR)(H)) |
#define | ObpIsOverflow(A, B) ((A) > ((A) + (B))) |
#define | ObpFreeObjectCreateInformation(_ObjectCreateInfo) |
#define | ObpReleaseObjectCreateInformation(_ObjectCreateInfo) |
#define | ObpAllocateObjectCreateInfoBuffer() (POBJECT_CREATE_INFORMATION)ExAllocateFromPPNPagedLookasideList(LookasideCreateInfoList) |
#define | ObpFreeObjectCreateInfoBuffer(ObjectCreateInfo) ExFreeToPPNPagedLookasideList(LookasideCreateInfoList, ObjectCreateInfo) |
Typedefs | |
typedef _SECURITY_DESCRIPTOR_HEADER | SECURITY_DESCRIPTOR_HEADER |
typedef _SECURITY_DESCRIPTOR_HEADER * | PSECURITY_DESCRIPTOR_HEADER |
Functions | |
VOID | ObpAcquireDescriptorCacheWriteLock (VOID) |
VOID | ObpAcquireDescriptorCacheReadLock (VOID) |
VOID | ObpReleaseDescriptorCacheLock (VOID) |
NTSTATUS | ObpCaptureObjectCreateInformation (IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE ProbeMode, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PUNICODE_STRING CapturedObjectName, IN POBJECT_CREATE_INFORMATION ObjectCreateInfo, IN LOGICAL UseLookaside) |
NTSTATUS | ObpCaptureObjectName (IN KPROCESSOR_MODE ProbeMode, IN PUNICODE_STRING ObjectName, IN OUT PUNICODE_STRING CapturedObjectName, IN LOGICAL UseLookaside) |
PWCHAR | ObpAllocateObjectNameBuffer (IN ULONG Length, IN LOGICAL UseLookaside, IN OUT PUNICODE_STRING ObjectName) |
VOID FASTCALL | ObpFreeObjectNameBuffer (IN PUNICODE_STRING ObjectName) |
NTSTATUS | ObpAllocateObject (IN POBJECT_CREATE_INFORMATION ObjectCreateInfo, IN KPROCESSOR_MODE OwnershipMode, IN POBJECT_TYPE ObjectType, IN PUNICODE_STRING ObjectName, IN ULONG ObjectBodySize, OUT POBJECT_HEADER *ReturnedObjectHeader) |
VOID FASTCALL | ObpFreeObject (IN PVOID Object) |
NTSTATUS | ObpParseSymbolicLink (IN PVOID ParseObject, IN PVOID ObjectType, IN PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object) |
VOID | ObpDeleteSymbolicLink (IN PVOID Object) |
VOID | ObpCreateSymbolicLinkName (POBJECT_SYMBOLIC_LINK SymbolicLink) |
VOID | ObpDeleteSymbolicLinkName (POBJECT_SYMBOLIC_LINK SymbolicLink) |
PVOID | ObpLookupDirectoryEntry (IN POBJECT_DIRECTORY Directory, IN PUNICODE_STRING Name, IN ULONG Attributes) |
BOOLEAN | ObpInsertDirectoryEntry (IN POBJECT_DIRECTORY Directory, IN PVOID Object) |
BOOLEAN | ObpDeleteDirectoryEntry (IN POBJECT_DIRECTORY Directory) |
NTSTATUS | ObpLookupObjectName (IN HANDLE RootDirectoryHandle, IN PUNICODE_STRING ObjectName, IN ULONG Attributes, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN PVOID ParseContext OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, IN PVOID InsertObject OPTIONAL, IN OUT PACCESS_STATE AccessState, OUT PBOOLEAN DirectoryLocked, OUT PVOID *FoundObject) |
VOID | ObpUnlockObjectDirectoryPath (IN POBJECT_DIRECTORY LockedDirectory) |
VOID | ObpDeleteNameCheck (IN PVOID Object, IN BOOLEAN TypeMutexHeld) |
VOID | ObpProcessRemoveObjectQueue (PVOID Parameter) |
VOID | ObpRemoveObjectRoutine (PVOID Object) |
POBJECT_HANDLE_COUNT_ENTRY | ObpInsertHandleCount (POBJECT_HEADER ObjectHeader) |
NTSTATUS | ObpIncrementHandleCount (OB_OPEN_REASON OpenReason, PEPROCESS Process, PVOID Object, POBJECT_TYPE ObjectType, PACCESS_STATE AccessState OPTIONAL, KPROCESSOR_MODE AccessMode, ULONG Attributes) |
VOID | ObpDecrementHandleCount (PEPROCESS Process, POBJECT_HEADER ObjectHeader, POBJECT_TYPE ObjectType, ACCESS_MASK GrantedAccess) |
NTSTATUS | ObpCreateHandle (IN OB_OPEN_REASON OpenReason, IN PVOID Object, IN POBJECT_TYPE ExpectedObjectType OPTIONAL, IN PACCESS_STATE AccessState, IN ULONG ObjectPointerBias OPTIONAL, IN ULONG Attributes, IN BOOLEAN DirectoryLocked, IN KPROCESSOR_MODE AccessMode, OUT PVOID *ReferencedNewObject OPTIONAL, OUT PHANDLE Handle) |
NTSTATUS | ObpIncrementUnnamedHandleCount (PACCESS_MASK DesiredAccess, PEPROCESS Process, PVOID Object, POBJECT_TYPE ObjectType, KPROCESSOR_MODE AccessMode, ULONG Attributes) |
NTSTATUS | ObpCreateUnnamedHandle (IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN ULONG ObjectPointerBias OPTIONAL, IN ULONG Attributes, IN KPROCESSOR_MODE AccessMode, OUT PVOID *ReferencedNewObject OPTIONAL, OUT PHANDLE Handle) |
NTSTATUS | ObpChargeQuotaForObject (IN POBJECT_HEADER ObjectHeader, IN POBJECT_TYPE ObjectType, OUT PBOOLEAN NewObject) |
NTSTATUS | ObpValidateDesiredAccess (IN ACCESS_MASK DesiredAccess) |
BOOLEAN | ObpCheckPseudoHandleAccess (IN PVOID Object, IN ACCESS_MASK DesiredAccess, OUT PNTSTATUS AccessStatus, IN BOOLEAN TypeMutexLocked) |
BOOLEAN | ObpCheckTraverseAccess (IN PVOID DirectoryObject, IN ACCESS_MASK TraverseAccess, IN PACCESS_STATE AccessState OPTIONAL, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE PreviousMode, OUT PNTSTATUS AccessStatus) |
BOOLEAN | ObpCheckObjectReference (IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus) |
NTSTATUS | ObpInitSecurityDescriptorCache (VOID) |
ULONG | ObpHashSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor) |
ULONG | ObpHashBuffer (PVOID Data, ULONG Length) |
NTSTATUS | ObpLogSecurityDescriptor (IN PSECURITY_DESCRIPTOR InputSecurityDescriptor, OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor) |
PSECURITY_DESCRIPTOR_HEADER | ObpCreateCacheEntry (PSECURITY_DESCRIPTOR InputSecurityDescriptor, ULONG FullHash) |
PSECURITY_DESCRIPTOR | ObpReferenceSecurityDescriptor (PVOID Object) |
VOID | ObpDereferenceSecurityDescriptor (PSECURITY_DESCRIPTOR SecurityDescriptor) |
VOID | ObpDestroySecurityDescriptorHeader (IN PSECURITY_DESCRIPTOR_HEADER Header) |
BOOLEAN | ObpCompareSecurityDescriptors (IN PSECURITY_DESCRIPTOR SD1, IN PSECURITY_DESCRIPTOR SD2) |
NTSTATUS | ObpValidateAccessMask (PACCESS_STATE AccessState) |
Variables | |
KSPIN_LOCK | ObpLock |
KEVENT | ObpDefaultObject |
WORK_QUEUE_ITEM | ObpRemoveObjectWorkItem |
PSINGLE_LIST_ENTRY | ObpRemoveObjectQueue |
KSPIN_LOCK | ObpDeviceMapLock |
POBJECT_TYPE | ObpObjectTypes [OBP_MAX_DEFINED_OBJECT_TYPES] |
POBJECT_TYPE | ObpTypeObjectType |
POBJECT_TYPE | ObpDirectoryObjectType |
POBJECT_TYPE | ObpSymbolicLinkObjectType |
POBJECT_TYPE | ObpDeviceMapObjectType |
POBJECT_DIRECTORY | ObpRootDirectoryObject |
POBJECT_DIRECTORY | ObpTypeDirectoryObject |
ULARGE_INTEGER | ObpDosDevicesShortNamePrefix |
ULARGE_INTEGER | ObpDosDevicesShortNameRoot |
UNICODE_STRING | ObpDosDevicesShortName |
ERESOURCE | ObpRootDirectoryMutex |
ERESOURCE | SecurityDescriptorCacheLock |
NPAGED_LOOKASIDE_LIST | ObpCreateInfoLookasideList |
NPAGED_LOOKASIDE_LIST | ObpNameBufferLookasideList |
PHANDLE_TABLE | ObpKernelHandleTable |
|
Definition at line 418 of file obp.h. Referenced by NtClose(), NtSetInformationObject(), NtWaitForMultipleObjects(), and ObReferenceObjectByHandle(). |
|
Definition at line 416 of file obp.h. Referenced by ObpCreateHandle(), and ObpCreateUnnamedHandle(). |
|
Value:
|
|
|
|
Definition at line 318 of file obp.h. Referenced by ObpLogSecurityDescriptor(). |
|
Value:
|
|
|
|
Definition at line 289 of file obp.h. Referenced by NtClose(), NtDuplicateObject(), NtWaitForMultipleObjects(), ObDupHandleProcedure(), ObpCaptureHandleInformation(), ObpCreateHandle(), ObpCreateUnnamedHandle(), ObpEnumFindHandleProcedure(), ObpSetHandleAttributes(), and ObReferenceObjectByHandle(). |
|
Definition at line 261 of file obp.h. Referenced by NtClose(), NtQueryObject(), and ObpSetHandleAttributes(). |
|
Definition at line 390 of file obp.h. Referenced by ObInitSystem(), ObpAllocateObjectNameBuffer(), and ObpFreeObjectNameBuffer(). |
|
Definition at line 228 of file obp.h. Referenced by NtQueryObject(), and ObCreateObjectType(). |
|
Definition at line 519 of file obp.h. Referenced by ObCreateObject(). |
|
Definition at line 56 of file obp.h. Referenced by NtClose(), ObAssignSecurity(), ObGetObjectSecurity(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObpLookupObjectName(), ObpRemoveObjectRoutine(), and ObQueryNameString(). |
|
Definition at line 221 of file obp.h. Referenced by ObGetObjectSecurity(), and ObpReferenceSecurityDescriptor(). |
|
Definition at line 148 of file obp.h. Referenced by ObpDecrementHandleCount(), ObpIncrementHandleCount(), and ObpIncrementUnnamedHandleCount(). |
|
Definition at line 144 of file obp.h. Referenced by ObpCreateHandle(), and ObpCreateUnnamedHandle(). |
|
Definition at line 145 of file obp.h. Referenced by ObfDereferenceObject(). |
|
Definition at line 57 of file obp.h. Referenced by NtClose(), ObAssignSecurity(), ObGetObjectSecurity(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObpLookupObjectName(), ObpRemoveObjectRoutine(), and ObQueryNameString(). |
|
Value:
Definition at line 163 of file obp.h. Referenced by NtQuerySymbolicLinkObject(), ObCheckCreateObjectAccess(), ObCheckObjectAccess(), ObCreateObjectType(), ObEnumerateObjectsByType(), ObGetObjectInformation(), ObpCheckObjectReference(), ObpCheckTraverseAccess(), ObpCreateTypeArray(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), and ObpRemoveObjectRoutine(). |
|
Value:
Definition at line 189 of file obp.h. Referenced by NtQueryDirectoryObject(), NtQueryObject(), ObCreateObjectType(), ObInitSystem(), ObpDeleteNameCheck(), ObpDeleteSymbolicLinkName(), ObpLookupObjectName(), ObpParseSymbolicLink(), and ObQueryNameString(). |
|
Definition at line 547 of file obp.h. Referenced by ObCreateObject(), and ObFreeObjectCreateInfoBuffer(). |
|
Value:
Definition at line 431 of file obp.h. Referenced by ObDeleteCapturedInsertInfo(), ObInsertObject(), ObOpenObjectByName(), and ObpFreeObject(). |
|
Definition at line 213 of file obp.h. Referenced by NtClose(), NtDuplicateObject(), NtSetInformationObject(), NtWaitForMultipleObjects(), ObpCreateHandle(), ObpCreateUnnamedHandle(), ObQueryObjectAuditingByHandle(), ObReferenceObjectByHandle(), and obtest(). |
|
Definition at line 147 of file obp.h. Referenced by ObpIncrementHandleCount(), and ObpIncrementUnnamedHandleCount(). |
|
Definition at line 143 of file obp.h. Referenced by NtWaitForMultipleObjects(), ObDupHandleProcedure(), ObfReferenceObject(), ObpCreateHandle(), ObpCreateUnnamedHandle(), ObpLookupObjectName(), ObReferenceObjectByHandle(), and ObReferenceObjectByPointer(). |
|
Definition at line 424 of file obp.h. Referenced by NtQueryDirectoryObject(). |
|
Value:
Definition at line 176 of file obp.h. Referenced by NtQuerySymbolicLinkObject(), ObCheckCreateObjectAccess(), ObCheckObjectAccess(), ObCreateObjectType(), ObEnumerateObjectsByType(), ObGetObjectInformation(), ObpCheckObjectReference(), ObpCheckTraverseAccess(), ObpCreateTypeArray(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), and ObpRemoveObjectRoutine(). |
|
Value:
Definition at line 202 of file obp.h. Referenced by NtQueryDirectoryObject(), NtQueryObject(), ObCreateObjectType(), ObInitSystem(), ObInsertObject(), ObOpenObjectByName(), ObpCreateHandle(), ObpDeleteNameCheck(), ObpDeleteSymbolicLinkName(), ObpLookupObjectName(), ObpParseSymbolicLink(), ObQueryNameString(), and ObReferenceObjectByName(). |
|
Value:
Definition at line 436 of file obp.h. Referenced by ObCreateObject(), ObOpenObjectByName(), and ObpCaptureObjectCreateInformation(). |
|
|
Value:
|
|
Definition at line 311 of file obp.h. Referenced by ObDeassignSecurity(), ObpDereferenceSecurityDescriptor(), and ObpReferenceSecurityDescriptor(). |
|
Definition at line 339 of file obp.h. Referenced by ObpInitSecurityDescriptorCache(). |
|
|
|
|
|
Definition at line 914 of file obsdata.c. References ExAcquireResourceShared, KeEnterCriticalRegion, ObsSecurityDescriptorCacheLock, TRUE, and VOID(). Referenced by NtQueryObject(), and ObQuerySecurityDescriptorInfo().
|
|
Definition at line 886 of file obsdata.c. References ExAcquireResourceExclusive, KeEnterCriticalRegion, ObsSecurityDescriptorCacheLock, TRUE, and VOID(). Referenced by ObDeassignSecurity(), ObpDereferenceSecurityDescriptor(), ObpLogSecurityDescriptor(), ObpReferenceSecurityDescriptor(), and ObSetSecurityDescriptorInfo().
|
|
Definition at line 761 of file obcreate.c. References _OBJECT_HEADER_CREATOR_INFO::CreatorBackTraceIndex, _OBJECT_HEADER_CREATOR_INFO::CreatorUniqueProcess, DbgPrint, _OBJECT_HEADER_NAME_INFO::Directory, ExAllocatePoolWithTag, _OBJECT_HEADER_QUOTA_INFO::ExclusiveProcess, _OBJECT_HEADER::Flags, _OBJECT_HEADER::HandleCount, _OBJECT_HANDLE_COUNT_ENTRY::HandleCount, _OBJECT_HEADER::HandleInfoOffset, KernelMode, _OBJECT_HEADER_NAME_INFO::Name, _OBJECT_HEADER::NameInfoOffset, NonPagedPool, _OBJECT_HEADER_QUOTA_INFO::NonPagedPoolCharge, NTSTATUS(), NULL, OB_FLAG_CREATOR_INFO, OB_FLAG_EXCLUSIVE_OBJECT, OB_FLAG_KERNEL_OBJECT, OB_FLAG_NEW_OBJECT, OB_FLAG_PERMANENT_OBJECT, OB_FLAG_SINGLE_HANDLE_ENTRY, _OBJECT_HEADER::ObjectCreateInfo, ObpObjectsCreated, ObpObjectsWithCreatorInfo, ObpObjectsWithHandleDB, ObpObjectsWithName, ObpObjectsWithPoolQuota, PAGED_CODE, PagedPool, _OBJECT_HEADER_QUOTA_INFO::PagedPoolCharge, _OBJECT_HEADER::PointerCount, POOL_TYPE, PROTECTED_POOL, PsGetCurrentProcess, _OBJECT_HEADER::QuotaInfoOffset, SE_DEFAULT_SECURITY_QUOTA, _OBJECT_HEADER::SecurityDescriptor, _OBJECT_HEADER_QUOTA_INFO::SecurityDescriptorCharge, _OBJECT_HEADER_HANDLE_INFO::SingleEntry, Status, _OBJECT_HEADER::Type, and _OBJECT_HEADER_CREATOR_INFO::TypeList. Referenced by ObCreateObject(), and ObCreateObjectType().
|
|
Definition at line 583 of file obcreate.c. References Buffer, ExAllocateFromPPNPagedLookasideList(), ExAllocatePoolWithTag, FALSE, LookasideNameBufferList, NonPagedPool, OBJECT_NAME_BUFFER_SIZE, and USHORT. Referenced by ObpCaptureObjectName().
|
|
Referenced by ObCreateObject(), and ObOpenObjectByName(). |
|
Definition at line 438 of file obcreate.c. References ExFreePool(), ExSystemExceptionFilter(), KernelMode, NTSTATUS(), NULL, ObpAllocateObjectNameBuffer(), PAGED_CODE, ProbeAndReadUnicodeString, ProbeForRead, and Status. Referenced by ObpCaptureObjectCreateInformation(), and ObReferenceObjectByName().
|
|
Definition at line 1861 of file obhandle.c. References FALSE, _OBJECT_HEADER_QUOTA_INFO::NonPagedPoolCharge, NULL, OB_FLAG_DEFAULT_SECURITY_QUOTA, OB_FLAG_NEW_OBJECT, OBJECT_HEADER_TO_QUOTA_INFO, _OBJECT_HEADER_QUOTA_INFO::PagedPoolCharge, PsChargeSharedPoolQuota(), PsGetCurrentProcess, SE_DEFAULT_SECURITY_QUOTA, _OBJECT_HEADER_QUOTA_INFO::SecurityDescriptorCharge, and TRUE. Referenced by ObpIncrementHandleCount(), and ObpIncrementUnnamedHandleCount().
|
|
Definition at line 602 of file obse.c. References FALSE, _OBJECT_TYPE_INITIALIZER::GenericMapping, NT_SUCCESS, NTSTATUS(), NULL, ObGetObjectSecurity(), OBJECT_TO_OBJECT_HEADER, ObpEnterObjectTypeMutex, ObpLeaveObjectTypeMutex, ObReleaseObjectSecurity(), PAGED_CODE, SeAccessCheck(), SeLockSubjectContext(), SeObjectReferenceAuditAlarm(), SeUnlockSubjectContext(), Status, TRUE, _OBJECT_HEADER::Type, and _OBJECT_TYPE::TypeInfo. Referenced by ObReferenceObjectByName().
|
|
|
|
Definition at line 778 of file obse.c. References FALSE, _OBJECT_TYPE_INITIALIZER::GenericMapping, NT_SUCCESS, NTSTATUS(), NULL, ObGetObjectSecurity(), OBJECT_TO_OBJECT_HEADER, ObpEnterObjectTypeMutex, ObpLeaveObjectTypeMutex, ObReleaseObjectSecurity(), PAGED_CODE, SeAccessCheck(), SeAppendPrivileges(), SeFastTraverseCheck(), SeFreePrivileges(), SeLockSubjectContext(), SeUnlockSubjectContext(), Status, TOKEN_IS_RESTRICTED, TRUE, _OBJECT_HEADER::Type, and _OBJECT_TYPE::TypeInfo. Referenced by ObpLookupObjectName().
|
|
Definition at line 839 of file obsdata.c. References Compare(), FALSE, and RtlLengthSecurityDescriptor(). Referenced by ObpLogSecurityDescriptor().
|
|
Definition at line 491 of file obsdata.c. References ExAllocatePoolWithTag, _SECURITY_DESCRIPTOR_HEADER::FullHash, _SECURITY_DESCRIPTOR_HEADER::Link, NULL, PagedPool, _SECURITY_DESCRIPTOR_HEADER::RefCount, RtlLengthSecurityDescriptor(), and _SECURITY_DESCRIPTOR_HEADER::SecurityDescriptor. Referenced by ObpLogSecurityDescriptor().
|
|
Definition at line 2160 of file obhandle.c. References _HANDLE_TABLE_ENTRY::CreatorBackTraceIndex, EncodeKernelHandle, ExCreateHandle(), FALSE, _HANDLE_TABLE_ENTRY::GrantedAccess, _HANDLE_TABLE_ENTRY::GrantedAccessIndex, Handle, KernelMode, KeStackAttachProcess(), KeUnstackDetachProcess(), NT_SUCCESS, NtGlobalFlag, NTSTATUS(), NULL, _HANDLE_TABLE_ENTRY::ObAttributes, ObCreateHandle, OBJ_AUDIT_OBJECT_CLOSE, OBJ_HANDLE_ATTRIBUTES, _HANDLE_TABLE_ENTRY::Object, OBJECT_TO_OBJECT_HEADER, ObpDecrementHandleCount(), ObpDecrPointerCount, ObpGetObjectTable, ObpIncrementHandleCount(), ObpIncrPointerCount, ObpKernelHandleTable, ObpLeaveRootDirectoryMutex, ObpValidateIrql, PAGED_CODE, PAUX_ACCESS_DATA, _EPROCESS::Pcb, _AUX_ACCESS_DATA::PrivilegesUsed, PsGetCurrentProcess, PsInitialSystemProcess, SeAuditHandleCreation(), SePrivilegeObjectAuditAlarm(), Status, TRUE, _OBJECT_HEADER::Type, _OBJECT_TYPE::TypeInfo, and _OBJECT_TYPE_INITIALIZER::ValidAccessMask. Referenced by ObInsertObject(), ObOpenObjectByName(), and ObOpenObjectByPointer().
|
|
Definition at line 1015 of file oblink.c. References CREATE_SYMBOLIC_LINK, _OBJECT_DIRECTORY::DeviceMap, _OBJECT_HEADER_NAME_INFO::Directory, _OBJECT_SYMBOLIC_LINK::DosDeviceDriveIndex, L, _OBJECT_HEADER_NAME_INFO::Name, NULL, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpProcessDosDeviceSymbolicLink(), and RtlUpcaseUnicodeChar(). Referenced by ObInsertObject().
|
|
Definition at line 2507 of file obhandle.c. References _HANDLE_TABLE_ENTRY::CreatorBackTraceIndex, EncodeKernelHandle, ExCreateHandle(), FALSE, _HANDLE_TABLE_ENTRY::GrantedAccess, _HANDLE_TABLE_ENTRY::GrantedAccessIndex, Handle, KernelMode, KeStackAttachProcess(), KeUnstackDetachProcess(), NT_SUCCESS, NtGlobalFlag, NTSTATUS(), NULL, _HANDLE_TABLE_ENTRY::ObAttributes, OBJ_HANDLE_ATTRIBUTES, _HANDLE_TABLE_ENTRY::Object, OBJECT_TO_OBJECT_HEADER, ObpDecrementHandleCount(), ObpDecrPointerCount, ObpGetObjectTable, ObpIncrementUnnamedHandleCount(), ObpIncrPointerCount, ObpKernelHandleTable, ObpValidateIrql, PAGED_CODE, _EPROCESS::Pcb, PsGetCurrentProcess, PsInitialSystemProcess, Status, TRUE, _OBJECT_HEADER::Type, _OBJECT_TYPE::TypeInfo, and _OBJECT_TYPE_INITIALIZER::ValidAccessMask. Referenced by ObInsertObject().
|
|
Definition at line 1967 of file obhandle.c. References ASSERT, _OBJECT_HEADER::Body, _OBJECT_TYPE_INITIALIZER::CloseProcedure, _OBJECT_HANDLE_COUNT_DATABASE::CountEntries, FALSE, _OBJECT_HEADER::Flags, _OBJECT_HANDLE_COUNT_ENTRY::HandleCount, _OBJECT_HEADER::HandleCount, _OBJECT_HEADER_HANDLE_INFO::HandleCountDataBase, _OBJECT_HANDLE_COUNT_DATABASE::HandleCountEntries, _OBJECT_TYPE_INITIALIZER::MaintainHandleCount, NULL, OB_FLAG_EXCLUSIVE_OBJECT, OB_FLAG_SINGLE_HANDLE_ENTRY, OBJECT_HEADER_TO_CREATOR_INFO, OBJECT_HEADER_TO_HANDLE_INFO, OBJECT_HEADER_TO_QUOTA_INFO, ObpBeginTypeSpecificCallOut, ObpDecrHandleCount, ObpDeleteNameCheck(), ObpEndTypeSpecificCallOut, ObpEnterObjectTypeMutex, ObpLeaveObjectTypeMutex, PAGED_CODE, _OBJECT_HANDLE_COUNT_ENTRY::Process, _OBJECT_HEADER_HANDLE_INFO::SingleEntry, _OBJECT_TYPE::TotalNumberOfHandles, TRUE, _OBJECT_TYPE::TypeInfo, and _OBJECT_HEADER_CREATOR_INFO::TypeList. Referenced by NtClose(), NtDuplicateObject(), ObpCreateHandle(), and ObpCreateUnnamedHandle().
|
|
Definition at line 1009 of file obdir.c. References _OBJECT_DIRECTORY_ENTRY::ChainLink, Directory(), ExFreePool(), FALSE, NULL, and TRUE. Referenced by ObInsertObject(), and ObpDeleteNameCheck().
|
|
Definition at line 1497 of file obref.c. References DeleteSecurityDescriptor, _OBJECT_HEADER_NAME_INFO::Directory, ExFreePool(), _OBJECT_HEADER::Flags, _OBJECT_HEADER::HandleCount, _OBJECT_HEADER_NAME_INFO::Name, NULL, OB_FLAG_PERMANENT_OBJECT, ObDereferenceObject, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpBeginTypeSpecificCallOut, ObpDeleteDirectoryEntry(), ObpDeleteSymbolicLinkName(), ObpEndTypeSpecificCallOut, ObpEnterObjectTypeMutex, ObpEnterRootDirectoryMutex, ObpLeaveObjectTypeMutex, ObpLeaveRootDirectoryMutex, ObpLookupDirectoryEntry(), ObpSymbolicLinkObjectType, ObpValidateIrql, PAGED_CODE, _OBJECT_TYPE_INITIALIZER::PoolType, _OBJECT_HEADER::SecurityDescriptor, _OBJECT_TYPE_INITIALIZER::SecurityProcedure, _OBJECT_TYPE_INITIALIZER::SecurityRequired, _OBJECT_HEADER::Type, and _OBJECT_TYPE::TypeInfo. Referenced by ObInsertObject(), ObMakeTemporaryObject(), and ObpDecrementHandleCount().
|
|
Definition at line 904 of file oblink.c. References ExFreePool(), _OBJECT_SYMBOLIC_LINK::LinkTarget, NULL, and PAGED_CODE. Referenced by ObInitSystem().
|
|
Definition at line 951 of file oblink.c. References DELETE_SYMBOLIC_LINK, _OBJECT_SYMBOLIC_LINK::LinkTargetObject, NULL, ObDereferenceObject, ObpEnterRootDirectoryMutex, ObpLeaveRootDirectoryMutex, ObpProcessDosDeviceSymbolicLink(), and ObReferenceObject. Referenced by ObpDeleteNameCheck().
|
|
Definition at line 700 of file obsdata.c. References ASSERT, _SECURITY_DESCRIPTOR_HEADER::FullHash, ObpAcquireDescriptorCacheWriteLock(), ObpDestroySecurityDescriptorHeader(), ObpReleaseDescriptorCacheLock(), ObPrint, _SECURITY_DESCRIPTOR_HEADER::RefCount, and SD_TO_SD_HEADER. Referenced by ObDeassignSecurity(), ObReleaseObjectSecurity(), and ObSetSecurityDescriptorInfo().
|
|
Definition at line 759 of file obsdata.c. References ASSERT, ExFreePool(), Header, NULL, ObPrint, and ObsSecurityDescriptorCache. Referenced by ObpDereferenceSecurityDescriptor().
|
|
Definition at line 1098 of file obcreate.c. References DbgPrint, _OBJECT_TYPE_INITIALIZER::DefaultNonPagedPoolCharge, _OBJECT_TYPE_INITIALIZER::DefaultPagedPoolCharge, ExFreePool(), ExFreePoolWithTag, _OBJECT_HEADER_HANDLE_INFO::HandleCountDataBase, _OBJECT_HEADER_NAME_INFO::Name, _OBJECT_TYPE::Name, _OBJECT_HEADER_QUOTA_INFO::NonPagedPoolCharge, NULL, OB_FLAG_DEFAULT_SECURITY_QUOTA, OB_FLAG_NEW_OBJECT, OB_FLAG_SINGLE_HANDLE_ENTRY, OBJECT_HEADER_TO_CREATOR_INFO, OBJECT_HEADER_TO_HANDLE_INFO, OBJECT_HEADER_TO_NAME_INFO, OBJECT_HEADER_TO_QUOTA_INFO, OBJECT_TO_OBJECT_HEADER, ObpFreeObjectCreateInformation, PAGED_CODE, _OBJECT_HEADER_QUOTA_INFO::PagedPoolCharge, PROTECTED_POOL, PsReturnSharedPoolQuota(), SE_DEFAULT_SECURITY_QUOTA, _OBJECT_HEADER_QUOTA_INFO::SecurityDescriptorCharge, _OBJECT_TYPE::TotalNumberOfObjects, _OBJECT_HEADER::Type, and _OBJECT_TYPE::TypeInfo. Referenced by ObCreateObject(), and ObpRemoveObjectRoutine().
|
|
Referenced by ObCreateObject(), ObOpenObjectByName(), and ObReferenceObjectByName(). |
|
Definition at line 253 of file obsdata.c. References Buffer. Referenced by ObpHashSecurityDescriptor().
|
|
Definition at line 182 of file obsdata.c. References Dacl, FALSE, Group, NTSTATUS(), NULL, ObpHashBuffer(), Owner, RtlGetDaclSecurityDescriptor(), RtlGetGroupSecurityDescriptor(), RtlGetOwnerSecurityDescriptor(), RtlGetSaclSecurityDescriptor(), RtlLengthSid(), and Status. Referenced by ObpLogSecurityDescriptor().
|
|
Definition at line 1232 of file obhandle.c. References _OBJECT_TYPE_INITIALIZER::CloseProcedure, EXCEPTION_EXECUTE_HANDLER, FALSE, _OBJECT_HEADER::Flags, GENERIC_ACCESS, _OBJECT_TYPE_INITIALIZER::GenericMapping, _OBJECT_HEADER::HandleCount, _OBJECT_TYPE::HighWaterNumberOfHandles, _OBJECT_TYPE_INITIALIZER::MaintainHandleCount, NT_SUCCESS, NTSTATUS(), NULL, OB_FLAG_EXCLUSIVE_OBJECT, ObCheckObjectAccess(), ObCreateHandle, ObDuplicateHandle, OBJECT_HEADER_TO_CREATOR_INFO, OBJECT_HEADER_TO_EXCLUSIVE_PROCESS, OBJECT_HEADER_TO_QUOTA_INFO, OBJECT_TO_OBJECT_HEADER, ObOpenHandle, ObpBeginTypeSpecificCallOut, ObpChargeQuotaForObject(), ObpDecrHandleCount, ObpEndTypeSpecificCallOut, ObpEnterObjectTypeMutex, ObpIncrementHandleDataBase(), ObpIncrHandleCount, ObpLeaveObjectTypeMutex, ObpValidateIrql, _OBJECT_TYPE_INITIALIZER::OpenProcedure, PAGED_CODE, PsGetCurrentProcess, RtlMapGenericMask(), SeAppendPrivileges(), SePrivilegeCheck(), SePrivilegedServiceAuditAlarm(), SeSecurityPrivilege, Status, _OBJECT_TYPE::TotalNumberOfHandles, TRUE, _OBJECT_TYPE::TypeInfo, _OBJECT_HEADER_CREATOR_INFO::TypeList, _OBJECT_TYPE::TypeList, and VOID(). Referenced by NtDuplicateObject(), ObDupHandleProcedure(), and ObpCreateHandle().
|
|
Definition at line 1587 of file obhandle.c. References _OBJECT_TYPE_INITIALIZER::CloseProcedure, EXCEPTION_EXECUTE_HANDLER, FALSE, _OBJECT_HEADER::Flags, GENERIC_ACCESS, _OBJECT_TYPE_INITIALIZER::GenericMapping, _OBJECT_HEADER::HandleCount, _OBJECT_TYPE::HighWaterNumberOfHandles, _OBJECT_TYPE_INITIALIZER::MaintainHandleCount, NT_SUCCESS, NTSTATUS(), NULL, OB_FLAG_EXCLUSIVE_OBJECT, ObCreateHandle, OBJECT_HEADER_TO_CREATOR_INFO, OBJECT_HEADER_TO_EXCLUSIVE_PROCESS, OBJECT_HEADER_TO_QUOTA_INFO, OBJECT_TO_OBJECT_HEADER, ObpBeginTypeSpecificCallOut, ObpChargeQuotaForObject(), ObpDecrHandleCount, ObpEndTypeSpecificCallOut, ObpEnterObjectTypeMutex, ObpIncrementHandleDataBase(), ObpIncrHandleCount, ObpLeaveObjectTypeMutex, ObpValidateIrql, _OBJECT_TYPE_INITIALIZER::OpenProcedure, PAGED_CODE, PsGetCurrentProcess, RtlMapGenericMask(), Status, _OBJECT_TYPE::TotalNumberOfHandles, TRUE, _OBJECT_TYPE::TypeInfo, _OBJECT_HEADER_CREATOR_INFO::TypeList, _OBJECT_TYPE::TypeList, and VOID(). Referenced by ObpCreateUnnamedHandle().
|
|
Definition at line 118 of file obsdata.c. References ExAllocatePoolWithTag, ExFreePool(), ExInitializeResource, IF_OB_GLOBAL, NT_SUCCESS, NTSTATUS(), NULL, ObsSecurityDescriptorCache, ObsSecurityDescriptorCacheLock, PagedPool, SECURITY_DESCRIPTOR_CACHE_ENTRIES, Size, and Status. Referenced by ObInitSystem().
|
|
Definition at line 903 of file obdir.c. References _OBJECT_DIRECTORY_ENTRY::ChainLink, _OBJECT_HEADER_NAME_INFO::Directory, Directory(), ExAllocatePoolWithTag, FALSE, NULL, _OBJECT_DIRECTORY_ENTRY::Object, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, PagedPool, and TRUE. Referenced by ObCreateObjectType(), ObInitSystem(), and ObpLookupObjectName().
|
|
Definition at line 908 of file obhandle.c. References _OBJECT_HANDLE_COUNT_DATABASE::CountEntries, ExAllocatePoolWithTag, ExFreePool(), _OBJECT_HEADER::Flags, _OBJECT_HEADER_HANDLE_INFO::HandleCountDataBase, _OBJECT_HANDLE_COUNT_DATABASE::HandleCountEntries, NULL, OB_FLAG_SINGLE_HANDLE_ENTRY, OBJECT_HEADER_TO_HANDLE_INFO, PAGED_CODE, PagedPool, and _OBJECT_HEADER_HANDLE_INFO::SingleEntry. Referenced by ObpIncrementHandleDataBase().
|
|
Definition at line 297 of file obsdata.c. References ExFreePool(), FALSE, Header, _SECURITY_DESCRIPTOR_HEADER::Link, LINK_TO_SD_HEADER, NULL, ObpAcquireDescriptorCacheWriteLock(), ObpCompareSecurityDescriptors(), ObpCreateCacheEntry(), ObpHashSecurityDescriptor(), ObpReleaseDescriptorCacheLock(), ObPrint, ObsSecurityDescriptorCache, and _SECURITY_DESCRIPTOR_HEADER::SecurityDescriptor. Referenced by ObAssignObjectSecurityDescriptor(), and ObSetSecurityDescriptorInfo().
|
|
Definition at line 705 of file obdir.c. References Buffer, _OBJECT_DIRECTORY_ENTRY::ChainLink, Directory(), FALSE, _OBJECT_HEADER_NAME_INFO::Name, Name, NULL, NUMBER_HASH_BUCKETS, _OBJECT_DIRECTORY_ENTRY::Object, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, PAGED_CODE, RtlEqualUnicodeString(), RtlUpcaseUnicodeChar(), and TRUE. Referenced by ObCreateObjectType(), ObInitSystem(), ObpDeleteNameCheck(), ObpLookupObjectName(), and ObpProcessDosDeviceSymbolicLink().
|
|
Definition at line 1081 of file obdir.c. References ASSERT, _OBJECT_HEADER::Body, _OBJECT_DIRECTORY::DeviceMap, Directory(), _DEVICE_MAP::DosDevicesDirectory, ExAllocatePoolWithTag, ExFreePool(), FALSE, IoFileObjectType, _OBJECT_HEADER_NAME_INFO::Name, NewName, NT_SUCCESS, NTSTATUS(), NULL, OB_PARSE_METHOD, ObCheckCreateObjectAccess(), ObDereferenceObject, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpBeginTypeSpecificCallOut, ObpCheckTraverseAccess(), ObpDeviceMapLock, ObpDirectoryObjectType, ObpDosDevicesShortName, ObpDosDevicesShortNamePrefix, ObpDosDevicesShortNameRoot, ObpEndTypeSpecificCallOut, ObpEnterRootDirectoryMutex, ObpIncrPointerCount, ObpInsertDirectoryEntry(), ObpLeaveRootDirectoryMutex, ObpLookupDirectoryEntry(), ObpParseSymbolicLink(), ObpRootDirectoryObject, ObpValidateIrql, ObReferenceObject, ObReferenceObjectByHandle(), ObReferenceObjectByPointer(), PagedPool, _OBJECT_TYPE_INITIALIZER::ParseProcedure, PsGetCurrentProcess, _DEVICE_MAP::ReferenceCount, SecurityQos, Status, TOKEN_HAS_TRAVERSE_PRIVILEGE, TRUE, _OBJECT_HEADER::Type, and _OBJECT_TYPE::TypeInfo. Referenced by ObInsertObject(), ObOpenObjectByName(), and ObReferenceObjectByName().
|
|
Definition at line 501 of file oblink.c. References ExAllocatePoolWithTag, ExFreePool(), _OBJECT_SYMBOLIC_LINK::LinkTarget, _OBJECT_SYMBOLIC_LINK::LinkTargetObject, _OBJECT_SYMBOLIC_LINK::LinkTargetRemaining, NewName, NonPagedPool, NT_SUCCESS, NTSTATUS(), NULL, ObpEnterRootDirectoryMutex, ObpLeaveRootDirectoryMutex, ObReferenceObjectByPointer(), PAGED_CODE, Status, and USHORT. Referenced by ObInitSystem(), and ObpLookupObjectName().
|
|
Definition at line 1299 of file obref.c. References _OBJECT_HEADER::Body, FALSE, NULL, ObpLock, ObpRemoveObjectQueue, ObpRemoveObjectRoutine(), and ObpRemoveQueueActive. Referenced by ObfDereferenceObject().
|
|
Definition at line 559 of file obsdata.c. References ASSERT, _SECURITY_DESCRIPTOR_HEADER::FullHash, IF_OB_GLOBAL, NULL, OBJECT_TO_OBJECT_HEADER, ObpAcquireDescriptorCacheWriteLock(), ObpCentralizedSecurity, ObpReleaseDescriptorCacheLock(), ObPrint, _SECURITY_DESCRIPTOR_HEADER::RefCount, RtlValidSecurityDescriptor(), SD_TO_SD_HEADER, and _OBJECT_HEADER::Type. Referenced by ObGetObjectSecurity().
|
|
Definition at line 942 of file obsdata.c. References ExReleaseResource, KeLeaveCriticalRegion, ObsSecurityDescriptorCacheLock, and VOID(). Referenced by NtQueryObject(), ObDeassignSecurity(), ObpDereferenceSecurityDescriptor(), ObpLogSecurityDescriptor(), ObpReferenceSecurityDescriptor(), ObQuerySecurityDescriptorInfo(), and ObSetSecurityDescriptorInfo().
|
|
Definition at line 1370 of file obref.c. References _OBJECT_TYPE_INITIALIZER::DeleteProcedure, DeleteSecurityDescriptor, ExFreePool(), _OBJECT_HEADER_NAME_INFO::Name, NTSTATUS(), NULL, OBJECT_HEADER_TO_CREATOR_INFO, OBJECT_HEADER_TO_NAME_INFO, OBJECT_TO_OBJECT_HEADER, ObpBeginTypeSpecificCallOut, ObpEndTypeSpecificCallOut, ObpEnterObjectTypeMutex, ObpFreeObject(), ObpLeaveObjectTypeMutex, ObpValidateIrql, PAGED_CODE, _OBJECT_HEADER::SecurityDescriptor, _OBJECT_TYPE_INITIALIZER::SecurityProcedure, Status, _OBJECT_HEADER::Type, _OBJECT_TYPE::TypeInfo, and _OBJECT_HEADER_CREATOR_INFO::TypeList. Referenced by ObfDereferenceObject(), and ObpProcessRemoveObjectQueue().
|
|
|
|
Definition at line 1886 of file obse.c. References NULL, PAGED_CODE, _ACCESS_STATE::PreviouslyGrantedAccess, _ACCESS_STATE::RemainingDesiredAccess, and _ACCESS_STATE::SecurityDescriptor. Referenced by ObInsertObject(), and ObOpenObjectByName().
|
|
Definition at line 2752 of file obhandle.c. Referenced by NtDuplicateObject().
|
|
Definition at line 384 of file obp.h. Referenced by ObInitSystem(). |
|
Definition at line 88 of file obp.h. Referenced by ObCreateObjectType(), and ObInitSystem(). |
|
Definition at line 98 of file obp.h. Referenced by ObDereferenceDeviceMap(), ObInheritDeviceMap(), ObInitSystem(), ObpLookupObjectName(), ObQueryDeviceMapInformation(), and ObSetDeviceMap(). |
|
|
|
Definition at line 367 of file obp.h. Referenced by NtCreateDirectoryObject(), NtOpenDirectoryObject(), NtQueryDirectoryObject(), ObAssignSecurity(), ObInitSystem(), ObpLookupObjectName(), ObpProcessDosDeviceSymbolicLink(), ObSetDeviceMap(), and ObSetSecurityDescriptorInfo(). |
|
|
|
|
|
|
|
Definition at line 399 of file obp.h. Referenced by NtClose(), NtSetInformationObject(), NtWaitForMultipleObjects(), ObInitSystem(), ObpCreateHandle(), ObpCreateUnnamedHandle(), and ObReferenceObjectByHandle(). |
|
Definition at line 87 of file obp.h. Referenced by ObfDereferenceObject(), ObInitSystem(), and ObpProcessRemoveObjectQueue(). |
|
Definition at line 392 of file obp.h. Referenced by ObInitSystem(). |
|
Definition at line 229 of file obp.h. Referenced by NtQueryObject(), and ObCreateObjectType(). |
|
Definition at line 90 of file obp.h. Referenced by ObfDereferenceObject(), ObInitSystem(), and ObpProcessRemoveObjectQueue(). |
|
Definition at line 89 of file obp.h. Referenced by ObfDereferenceObject(). |
|
Definition at line 377 of file obp.h. Referenced by ObInitSystem(). |
|
|
|
Definition at line 368 of file obp.h. Referenced by NtCreateSymbolicLinkObject(), NtOpenSymbolicLinkObject(), NtQueryObject(), NtQuerySymbolicLinkObject(), ObInitSystem(), ObInsertObject(), ObpDeleteNameCheck(), ObpProcessDosDeviceSymbolicLink(), and ObReferenceObjectByPointer(). |
|
Definition at line 371 of file obp.h. Referenced by ObCreateObjectType(), and ObInitSystem(). |
|
|
|
|