Here is a breakdown of what each module exports obinit.c KMUTANT ObpInitKillMutant; UNICODE_STRING ObpDosDevicesShortName; ULARGE_INTEGER ObpDosDevicesShortNamePrefix; ULARGE_INTEGER ObpDosDevicesShortNameRoot PDEVICE_MAP ObSystemDeviceMap ObInitSystem ( ObDupHandleProcedure ( ObAuditInheritedHandleProcedure ( ObInitProcess ( ObInitProcess2 ( ObDestroyHandleProcedure ( ObKillProcess ( ObFindHandleForObject ( obcreate.c ObCreateObject ( ObDeleteCapturedInsertInfo ( ObFreeObjectCreateInfoBuffer ( ObpCaptureObjectCreateInformation ( ObpCaptureObjectName ( ObpFreeObjectNameBuffer ( ObpAllocateObject ( ObpFreeObject ( obhandle.c NtDuplicateObject ( ObGetHandleInformation ( ObpIncrPointerCount ( ObpDecrPointerCountWithResult ( ObpIncrementHandleCount ( ObpDecrementHandleCount ( ObpCreateHandle ( ObpCreateUnnamedHandle ( ObpTranslateGrantedAccessIndex ( obinsert.c ObInsertObject ( obref.c ObOpenObjectByName ( ObOpenObjectByPointer ( ObReferenceObjectByHandle ( ObReferenceObjectByName ( ObReferenceObjectByPointer ( ObDereferenceObject ( ObfReferenceObject ( ObpDeleteNameCheck ( obse.c NtSetSecurityObject ( NtQuerySecurityObject ( ObCheckObjectAccess ( ObCheckCreateObjectAccess ( ObAssignObjectSecurityDescriptor ( ObGetObjectSecurity ( ObReleaseObjectSecurity ( ObValidateSecurityQuota ( ObAssignSecurity ( ObSetSecurityDescriptorInfo ( ObpCheckObjectReference ( ObpCheckTraverseAccess ( ObpValidateAccessMask ( obtype.c ObCreateObjectType ( ObEnumerateObjectsByType( ObGetObjectInformation( obdir.c NtCreateDirectoryObject ( NtOpenDirectoryObject ( NtQueryDirectoryObject ( ObpLookupDirectoryEntry ( ObpInsertDirectoryEntry ( ObpDeleteDirectoryEntry ( ObpLookupObjectName ( obdevmap.c ObSetDeviceMap ( ObQueryDeviceMapInformation ( ObInheritDeviceMap ( ObDereferenceDeviceMap ( oblink.c NtCreateSymbolicLinkObject ( NtOpenSymbolicLinkObject ( NtQuerySymbolicLinkObject ( ObpParseSymbolicLink ( ObpDeleteSymbolicLinkName ( ObpCreateSymbolicLinkName ( obclose.c NtClose ( NtMakeTemporaryObject ( ObMakeTemporaryObject ( obquery.c NtQueryObject ( NtSetInformationObject ( ObGetObjectName ( ObQueryNameString ( ObQueryTypeName ( ObQueryTypeInfo ( ObQueryObjectAuditingByHandle ( obsdata.c ObpInitSecurityDescriptorCache ( ObpLogSecurityDescriptor ( ObpReferenceSecurityDescriptor ( ObDeassignSecurity ( ObpDereferenceSecurityDescriptor ( ObpAcquireDescriptorCacheReadLock ( ObpReleaseDescriptorCacheLock ( obwait.c NtSignalAndWaitForSingleObject ( NtWaitForSingleObject ( NtWaitForMultipleObjects ( ObWaitForSingleObject ( Module Name: obinit.c Global variables and who references them GENERIC_MAPPING ObpTypeMapping = ... obinit.c\ObInitSystem GENERIC_MAPPING ObpDirectoryMapping = ... obinit.c\ObInitSystem GENERIC_MAPPING ObpSymbolicLinkMapping = ... obinit.c\ObInitSystem extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock; obinit.c\ObInitSystem KMUTANT ObpInitKillMutant; obhandle.c\NtDuplicateObject obinit.c\ObInitSystem obinit.c\ObInitProcess obinit.c\ObKillProcess obinit.c\ObFindHandleForObject ULONG ObpProtectionMode; obinit.c\ObpGetDosDevicesProtection ULONG ObpAuditBaseDirectories; obinit.c\ObInitSystem ULONG ObpAuditBaseObjects obinit.c\ObInitSystem UNICODE_STRING ObpDosDevicesShortName; obdir.c\ObpLookupObjectName obinit.c\ObpCreateDosDevicesDirectory ULARGE_INTEGER ObpDosDevicesShortNamePrefix; obdir.c\ObpLookupObjectName obinit.c\ObpCreateDosDevicesDirectory ULARGE_INTEGER ObpDosDevicesShortNameRoot obdir.c\ObpLookupObjectName obinit.c\ObpCreateDosDevicesDirectory PDEVICE_MAP ObSystemDeviceMap obdevmap.c\ObSetDeviceMap obdevmap.c\ObQueryDeviceMapInformation obdevmap.c\ObInheritDeviceMap Procedures BOOLEAN ObInitSystem ( VOID ) Called By: It calls: GENERIC_MAPPING ObpTypeMapping = ... GENERIC_MAPPING ObpDirectoryMapping = ... GENERIC_MAPPING ObpSymbolicLinkMapping = ... extern EPROCESS_QUOTA_BLOCK PspDefaultQuotaBlock; KMUTANT ObpInitKillMutant; ULONG ObpAuditBaseDirectories; ULONG ObpAuditBaseObjects; obinit.c\ObpCreateDosDevicesDirectory ( obref.c\ObReferenceObjectByHandle ( obtype.cObCreateObjectType ( obdir.c\NtCreateDirectoryObject ( obdir.c\ObpLookupDirectoryEntry ( obdir.c\ObpInsertDirectoryEntry ( oblink.c\ObpParseSymbolicLink ( obclose.c\NtClose ( obsdata.c\ObpInitSecurityDescriptorCache ( BOOLEAN ObDupHandleProcedure ( PEPROCESS Process, PVOID HandleTableEntry ) Called By: obinit.c\ObInitProcess It calls: obhandle.c\ObpIncrPointerCount ( obhandle.c\ObpIncrementHandleCount ( obhandle.c\ObpTranslateGrantedAccessIndex ( BOOLEAN ObAuditInheritedHandleProcedure ( IN PVOID HandleTableEntry, IN PVOID HandleId, IN PVOID EnumParameter ) Called By: obinit.c\ObInitProcess It Calls: NTSTATUS ObInitProcess ( PEPROCESS ParentProcess OPTIONAL, PEPROCESS NewProcess ) Called By: It Calls: obinit.c\KMUTANT ObpInitKillMutant; obinit.c\ObDupHandleProcedure ( obinit.c\ObAuditInheritedHandleProcedure ( VOID ObInitProcess2 ( PEPROCESS NewProcess ) Called By: It Calls: VOID ObDestroyHandleProcedure ( IN HANDLE HandleIndex, IN PVOID HandleTableEntry ) Called By: obinit.c\ObKillProcess It Calls: VOID ObKillProcess ( BOOLEAN AcquireLock, PEPROCESS Process ) Called By: It Calls: obinit.c\KMUTANT ObpInitKillMutant; obinit.c\ObDestroyHandleProcedure ( BOOLEAN ObpEnumFindHandleProcedure ( PVOID HandleTableEntry, PVOID HandleId, PVOID EnumParameter ) Called By: obinit.c\ObFindHandleForObject It Calls: obhandle.c\ObpTranslateGrantedAccessIndex ( BOOLEAN ObFindHandleForObject ( IN PEPROCESS Process, IN PVOID Object OPTIONAL, IN POBJECT_TYPE ObjectType OPTIONAL, IN POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL, OUT PHANDLE Handle ) Called By: It Calls: obinit.c\KMUTANT ObpInitKillMutant; obinit.c\ObpEnumFindHandleProcedure ( NTSTATUS ObpCreateDosDevicesDirectory ( VOID ) Called By: obinit.c\ObInitSystem It Calls: obinit.c\UNICODE_STRING ObpDosDevicesShortName; obinit.c\ULARGE_INTEGER ObpDosDevicesShortNamePrefix; obinit.c\ULARGE_INTEGER ObpDosDevicesShortNameRoot; obinit.c\ObpGetDosDevicesProtection ( obinit.c\ObpFreeDosDevicesProtection ( obdir.c\NtCreateDirectoryObject ( obdevmap.c\ObSetDeviceMap ( oblink.c\NtCreateSymbolicLinkObject ( obclose.c\NtClose ( NTSTATUS ObpGetDosDevicesProtection ( PSECURITY_DESCRIPTOR SecurityDescriptor ) Called By: obinit.c\ObpCreateDosDevicesDirectory It Calls: ULONG ObpProtectionMode; VOID ObpFreeDosDevicesProtection ( PSECURITY_DESCRIPTOR SecurityDescriptor ) Called By: obinit.c\ObpCreateDosDevicesDirectory It Calls: Module Name: obcreate.c Global variables and who references them BOOLEAN ObpShowAllocAndFree; obcreate.c\ObpAllocateObject obcreate.c\ObpFreeObject ULONG ObpObjectsCreated; obcreate.c\ObpAllocateObject ULONG ObpObjectsWithPoolQuota; obcreate.c\ObpAllocateObject ULONG ObpObjectsWithHandleDB; obcreate.c\ObpAllocateObject ULONG ObpObjectsWithName; obcreate.c\ObpAllocateObject ULONG ObpObjectsWithCreatorInfo; obcreate.c\ObpAllocateObject Procedures NTSTATUS ObCreateObject ( IN KPROCESSOR_MODE ProbeMode, IN POBJECT_TYPE ObjectType, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN KPROCESSOR_MODE OwnershipMode, IN OUT PVOID ParseContext OPTIONAL, IN ULONG ObjectBodySize, IN ULONG PagedPoolCharge, IN ULONG NonPagedPoolCharge, OUT PVOID *Object ) Called By: obdir.c\NtCreateDirectoryObject oblink.c\NtCreateSymbolicLinkObject It Calls: obcreate.c\ObpCaptureObjectCreateInformation ( obcreate.c\ObpFreeObjectNameBuffer ( obcreate.c\ObpAllocateObject ( obcreate.c\ObpFreeObject ( NTSTATUS ObpCaptureObjectCreateInformation ( IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE ProbeMode, IN POBJECT_ATTRIBUTES ObjectAttributes, IN OUT PUNICODE_STRING CapturedObjectName, IN POBJECT_CREATE_INFORMATION ObjectCreateInfo, IN LOGICAL UseLookaside ) Called By: obcreate.c\ObCreateObject obref.c\ObOpenObjectByName It Calls: obcreate.c\ObpCaptureObjectName ( NTSTATUS ObpCaptureObjectName ( IN KPROCESSOR_MODE ProbeMode, IN PUNICODE_STRING ObjectName, IN OUT PUNICODE_STRING CapturedObjectName, IN LOGICAL UseLookaside ) Called By: obcreate.c\ObpCaptureObjectCreateInformation obref.c\ObReferenceObjectByName It Calls: obcreate.c\ObpAllocateObjectNameBuffer ( PWCHAR ObpAllocateObjectNameBuffer ( IN ULONG Length, IN LOGICAL UseLookaside, IN OUT PUNICODE_STRING ObjectName ) Called By: obcreate.c\ObpCaptureObjectName It Calls: VOID FASTCALL ObpFreeObjectNameBuffer ( OUT PUNICODE_STRING ObjectName ) Called By: obcreate.c\ObCreateObject obref.c\ObOpenObjectByName obref.c\ObReferenceObjectByName It Calls: NTKERNELAPI VOID ObDeleteCapturedInsertInfo ( IN PVOID Object ) Called By: It Calls: NTSTATUS ObpAllocateObject ( IN POBJECT_CREATE_INFORMATION ObjectCreateInfo, IN KPROCESSOR_MODE OwnershipMode, IN POBJECT_TYPE ObjectType OPTIONAL, IN PUNICODE_STRING ObjectName, IN ULONG ObjectBodySize, OUT POBJECT_HEADER *ReturnedObjectHeader ) Called By: obcreate.c\ObCreateObject obtype.c\ObCreateObjectType It Calls: obcreate.c\BOOLEAN ObpShowAllocAndFree; obcreate.c\ULONG ObpObjectsCreated; obcreate.c\ULONG ObpObjectsWithPoolQuota; obcreate.c\ULONG ObpObjectsWithHandleDB; obcreate.c\ULONG ObpObjectsWithName; obcreate.c\ULONG ObpObjectsWithCreatorInfo; VOID FASTCALL ObpFreeObject ( IN PVOID Object ) Called By: obcreate.c\ObCreateObject obref.c\ObRemoveObjectRoutine It Calls: obcreate.c\BOOLEAN ObpShowAllocAndFree; VOID FASTCALL ObFreeObjectCreateInfoBuffer ( IN POBJECT_CREATE_INFORMATION ObjectCreateInfo ) Called By: It Calls: Module Name: obhandle.c Global variables and who references them extern KMUTANT ObpInitKillMutant; Procedures LONG FASTCALL ObpIncrPointerCount ( IN POBJECT_HEADER ObjectHeader ) Called By: obdir.c\ObpLookupObjectName obhandle.c\ObpCreateHandle obhandle.c\ObpCreateUnnamedHandle obinit.c\ObDupHandleProcedure obref.c\ObReferenceObjectByHandle obref.c\ObfReferenceObject obref.c\ObReferenceObjectByPointer obwait.c\NtWaitForMultipleObjects It Calls: LONG FASTCALL ObpDecrPointerCount ( IN POBJECT_HEADER ObjectHeader ) Called By: obhandle.c\ObpCreateHandle obhandle.c\ObpCreateUnnamedHandle It Calls: BOOLEAN FASTCALL ObpDecrPointerCountWithResult ( IN POBJECT_HEADER ObjectHeader ) Called By: obref.c\ObfDereferenceObject It Calls: VOID FASTCALL ObpIncrHandleCount ( IN POBJECT_HEADER ObjectHeader ) Called By: obhandle.c\ObpIncrementHandleCount obhandle.c\ObpIncrementUnnamedHandleCount It Calls: BOOLEAN FASTCALL ObpDecrHandleCount ( IN POBJECT_HEADER ObjectHeader ) Called By: obhandle.c\ObpDecrementHandleCount It Calls: POBJECT_HANDLE_COUNT_ENTRY ObpInsertHandleCount ( POBJECT_HEADER ObjectHeader ) Called By: obhandle.c\ObpIncrementHandleDataBase It Calls: NTSTATUS ObpIncrementHandleDataBase ( IN POBJECT_HEADER ObjectHeader, IN PEPROCESS Process, OUT PULONG NewProcessHandleCount ) Called By: obhandle.c\ObpIncrementHandleCount obhandle.c\ObpIncrementUnnamedHandleCount It Calls: obhandle.c\ObpInsertHandleCount ( NTSTATUS ObpIncrementHandleCount ( OB_OPEN_REASON OpenReason, PEPROCESS Process, PVOID Object, POBJECT_TYPE ObjectType, PACCESS_STATE AccessState OPTIONAL, KPROCESSOR_MODE AccessMode, ULONG Attributes ) Called By: obhandle.c\ObpCreateHandle obhandle.c\NtDuplicateObject obinit.c\ObDupHandleProcedure It Calls: obhandle.c\ObpIncrHandleCount ( obhandle.c\ObpIncrementHandleDataBase ( obhandle.c\ObpChargeQuotaForObject ( obse.c\ObCheckObjectAccess ( NTSTATUS ObpIncrementUnnamedHandleCount ( PACCESS_MASK DesiredAccess, PEPROCESS Process, PVOID Object, POBJECT_TYPE ObjectType, KPROCESSOR_MODE AccessMode, ULONG Attributes ) Called By: obhandle.c\ObpCreateUnnamedHandle It Calls: obhandle.c\ObpIncrHandleCount ( obhandle.c\ObpIncrementHandleDataBase ( obhandle.c\ObpChargeQuotaForObject ( NTSTATUS ObpChargeQuotaForObject ( IN POBJECT_HEADER ObjectHeader, IN POBJECT_TYPE ObjectType, OUT PBOOLEAN NewObject ) Called By: obhandle.c\ObpIncrementHandleCount obhandle.c\ObpIncrementUnnamedHandleCount It Calls: VOID ObpDecrementHandleCount ( PEPROCESS Process, POBJECT_HEADER ObjectHeader, POBJECT_TYPE ObjectType, ACCESS_MASK GrantedAccess ) Called By: obclose.c\NtClose obhandle.c\ObpCreateHandle obhandle.c\ObpCreateUnnamedHandle obhandle.c\NtDuplicateObject It Calls: obhandle.c\ObpDecrHandleCount ( obref.c\ObpDeleteNameCheck ( 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 ) Called By: obinsert.c\ObInsertObject obref.c\ObOpenObjectByName obref.c\ObOpenObjectByPointer It Calls: obhandle.c\ObpIncrPointerCount ( obhandle.c\ObpDecrPointerCount ( obhandle.c\ObpIncrementHandleCount ( obhandle.c\ObpDecrementHandleCount ( obhandle.c\ObpComputeGrantedAccessIndex ( 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 ) Called By: obinsert.c\ObInsertObject It Calls: obhandle.c\ObpIncrPointerCount ( obhandle.c\ObpDecrPointerCount ( obhandle.c\ObpIncrementUnnamedHandleCount ( obhandle.c\ObpDecrementHandleCount ( obhandle.c\ObpComputeGrantedAccessIndex ( NTSTATUS NtDuplicateObject ( IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options ) Called By: It Calls: obinit.c\KMUTANT ObpInitKillMutant; obhandle.c\ObpIncrementHandleCount ( obhandle.c\ObpDecrementHandleCount ( obhandle.c\ObpValidateDesiredAccess ( obhandle.c\ObpComputeGrantedAccessIndex ( obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( obclose.c\NtClose ( NTSTATUS ObpValidateDesiredAccess ( IN ACCESS_MASK DesiredAccess ) Called By: obhandle.c\NtDuplicateObject It Calls: NTSTATUS ObpCaptureHandleInformation ( IN OUT PSYSTEM_HANDLE_TABLE_ENTRY_INFO *HandleEntryInfo, IN HANDLE UniqueProcessId, IN PVOID HandleTableEntry, IN HANDLE HandleIndex, IN ULONG Length, IN OUT PULONG RequiredLength ) Called By: obhandle.c\ObGetHandleInformation It Calls: obhandle.c\ObpTranslateGrantedAccessIndex ( NTSTATUS ObGetHandleInformation ( OUT PSYSTEM_HANDLE_INFORMATION HandleInformation, IN ULONG Length, OUT PULONG ReturnLength OPTIONAL ) Called By: It Calls: obhandle.c\ObpCaptureHandleInformation ( Global variables and who references them ULONG ObpXXX1; obhandle.c\ObpComputeGrantedAccessIndex ULONG ObpXXX2; obhandle.c\ObpComputeGrantedAccessIndex ULONG ObpXXX3; obhandle.c\ObpTranslateGrantedAccessIndex Procedures USHORT ObpComputeGrantedAccessIndex ( ACCESS_MASK GrantedAccess ) Called By: obhandle.c\ObpCreateHandle obhandle.c\ObpCreateUnnamedHandle obhandle.c\NtDuplicateObject It Calls: obhandle.c\ULONG ObpXXX1; obhandle.c\ULONG ObpXXX2; ACCESS_MASK ObpTranslateGrantedAccessIndex ( USHORT GrantedAccessIndex ) Called By: obclose.c\NtClose obhandle.c\ObpCaptureHandleInformation obinit.c\ObDupHandleProcedure obinit.c\ObpEnumFindHandleProcedure obref.c\ObReferenceObjectByHandle obwait.c\NtWaitForMultipleObjects It Calls: obhandle.c\ULONG ObpXXX3; Module Name: obinsert.c Procedures NTSTATUS ObInsertObject ( IN PVOID Object, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess OPTIONAL, IN ULONG ObjectPointerBias, OUT PVOID *NewObject OPTIONAL, OUT PHANDLE Handle ) Called By: obdir.c\NtCreateDirectoryObject oblink.c\NtCreateSymbolicLinkObject It Calls: obhandle.c\ObpCreateHandle ( obhandle.c\ObpCreateUnnamedHandle ( obref.c\ObpDeleteNameCheck ( obref.c\ObDereferenceObject ( obse.c\ObGetObjectSecurity ( obse.c\ObReleaseObjectSecurity ( obse.c\ObAssignSecurity ( obse.c\ObpValidateAccessMask ( obdir.c\ObpDeleteDirectoryEntry ( obdir.c\ObpLookupObjectName ( oblink.c\ObpCreateSymbolicLinkName ( Module Name: obref.c Global variables and who references them BOOLEAN ObpRemoveQueueActive; obref.c\ObfDereferenceObject obref.c\ObpProcessRemoveObjectQueue Procedures ULONG ObGetObjectPointerCount ( IN PVOID Object ) Called By: It Calls: NTSTATUS ObOpenObjectByName ( IN POBJECT_ATTRIBUTES ObjectAttributes, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, IN OUT PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess OPTIONAL, IN OUT PVOID ParseContext OPTIONAL, OUT PHANDLE Handle ) Called By: obdir.c\NtOpenDirectoryObject oblink.c\NtOpenSymbolicLinkObject It Calls: obcreate.c\ObpCaptureObjectCreateInformation ( obcreate.c\ObpFreeObjectNameBuffer ( obhandle.c\ObpCreateHandle ( obref.c\ObDereferenceObject ( obse.c\ObpValidateAccessMask ( obdir.c\ObpLookupObjectName ( NTSTATUS ObOpenObjectByPointer ( IN PVOID Object, IN ULONG HandleAttributes, IN PACCESS_STATE PassedAccessState OPTIONAL, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PHANDLE Handle ) Called By: It Calls: obhandle.c\ObpCreateHandle ( obref.c\ObReferenceObjectByPointer ( obref.c\ObDereferenceObject ( NTSTATUS ObReferenceObjectByHandle ( IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType OPTIONAL, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL ) Called By: obclose.c\NtMakeTemporaryObject obdevmap.c\ObSetDeviceMap obdir.c\ObpLookupObjectName obdir.c\NtQueryDirectoryObject obhandle.c\NtDuplicateObject obinit.c\ObInitSystem oblink.c\NtQuerySymbolicLinkObject obquery.c\NtQueryObject obse.c\NtSetSecurityObject obse.c\NtQuerySecurityObject obwait.c\NtSignalAndWaitForSingleObject obwait.c\NtWaitForSingleObject obwait.c\ObWaitForSingleObject It Calls: obhandle.c\ObpIncrPointerCount ( obhandle.c\ObpTranslateGrantedAccessIndex ( NTSTATUS ObReferenceObjectByName ( IN PUNICODE_STRING ObjectName, IN ULONG Attributes, IN PACCESS_STATE AccessState OPTIONAL, IN ACCESS_MASK DesiredAccess OPTIONAL, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext OPTIONAL, OUT PVOID *Object ) Called By: It Calls: obcreate.c\ObpCaptureObjectName ( obcreate.c\ObpFreeObjectNameBuffer ( obse.c\ObpCheckObjectReference ( obdir.c\ObpLookupObjectName ( LONG FASTCALL ObfReferenceObject ( IN PVOID Object ) Called By: It Calls: obhandle.c\ObpIncrPointerCount ( NTSTATUS ObReferenceObjectByPointer ( IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode ) Called By: obdir.c\ObpLookupObjectName oblink.c\ObpParseSymbolicLink obref.c\ObOpenObjectByPointer It Calls: obhandle.c\ObpIncrPointerCount ( LONG FASTCALL ObfDereferenceObject ( IN PVOID Object ) Called By: obref.c\ObDereferenceObject It Calls: obref.c\BOOLEAN ObpRemoveQueueActive; obhandle.c\ObpDecrPointerCountWithResult ( obref.c\ObpProcessRemoveObjectQueue ( obref.c\ObpRemoveObjectRoutine ( VOID ObpProcessRemoveObjectQueue ( PVOID Parameter ) Called By: obref.c\ObfDereferenceObject It Calls: obref.c\BOOLEAN ObpRemoveQueueActive; obref.c\ObpRemoveObjectRoutine ( VOID ObpRemoveObjectRoutine ( PVOID Object ) Called By: obref.c\ObfDereferenceObject obref.c\ObpProcessRemoveObjectQueue It Calls: VOID ObpDeleteNameCheck ( IN PVOID Object, IN BOOLEAN TypeMutexHeld ) Called By: obclose.c\ObMakeTemporaryObject obhandle.c\ObpDecrementHandleCount obinsert.c\ObInsertObject It Calls: obref.c\ObDereferenceObject ( obdir.c\ObpLookupDirectoryEntry ( obdir.c\ObpDeleteDirectoryEntry ( oblink.c\ObpDeleteSymbolicLinkName ( LONG ObDereferenceObject ( IN PVOID Object ) Called By: obclose.c\NtClose obclose.c\NtMakeTemporaryObject obdevmap.c\ObSetDeviceMap obdevmap.c\ObDereferenceDeviceMap obdir.c\ObpLookupObjectName obdir.c\NtQueryDirectoryObject obhandle.c\NtDuplicateObject obinsert.c\ObInsertObject oblink.c\ObpProcessDosDeviceSymbolicLink oblink.c\NtCreateSymbolicLinkObject oblink.c\NtQuerySymbolicLinkObject obquery.c\NtQueryObject obref.c\ObOpenObjectByName obref.c\ObOpenObjectByPointer obref.c\ObpDeleteNameCheck obse.c\NtSetSecurityObject obse.c\NtQuerySecurityObject obwait.c\NtSignalAndForSingleObject obwait.c\NtWaitForSingleObject obwait.c\NtWaitForMultipleObjects obwait.c\ObWaitForSingleObject It Calls: obref.c\ObfDereferenceObject ( Module Name: obse.c Procedures NTSTATUS NtSetSecurityObject ( IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( NTSTATUS NtQuerySecurityObject ( IN HANDLE Handle, IN SECURITY_INFORMATION SecurityInformation, OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN ULONG Length, OUT PULONG LengthNeeded ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( BOOLEAN ObCheckObjectAccess ( IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus ) Called By: obhandle.c\ObpIncrementHandleCount It Calls: obse.c\ObGetObjectSecurity ( obse.c\ObReleaseObjectSecurity ( BOOLEAN ObpCheckObjectReference ( IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus ) Called By: obref.c\ObReferenceObjectByName It Calls: obse.c\ObGetObjectSecurity ( obse.c\ObReleaseObjectSecurity ( BOOLEAN ObpCheckTraverseAccess ( IN PVOID DirectoryObject, IN ACCESS_MASK TraverseAccess, IN PACCESS_STATE AccessState OPTIONAL, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE PreviousMode, OUT PNTSTATUS AccessStatus ) Called By: obdir.c\ObpLookupObjectName It Calls: obse.c\ObGetObjectSecurity ( obse.c\ObReleaseObjectSecurity ( BOOLEAN ObCheckCreateObjectAccess ( IN PVOID DirectoryObject, IN ACCESS_MASK CreateAccess, IN PACCESS_STATE AccessState, IN PUNICODE_STRING ComponentName, IN BOOLEAN TypeMutexLocked, IN KPROCESSOR_MODE PreviousMode, OUT PNTSTATUS AccessStatus ) Called By: obdir.c\ObpLookupObjectName It Calls: obse.c\ObGetObjectSecurity ( obse.c\ObReleaseObjectSecurity ( NTSTATUS ObAssignObjectSecurityDescriptor ( IN PVOID Object, IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL, IN POOL_TYPE PoolType ) Called By: It Calls: obsdata.c\ObpLogSecurityDescriptor ( NTSTATUS ObGetObjectSecurity ( IN PVOID Object, OUT PSECURITY_DESCRIPTOR *SecurityDescriptor, OUT PBOOLEAN MemoryAllocated ) Called By: obinsert.c\ObInsertObject oblink.c\ObpProcessDosDeviceSymbolicLink obse.c\ObCheckObjectAccess obse.c\ObpCheckObjectReference obse.c\ObpCheckTraverseAccess obse.c\ObCheckCreateObjectAccess It Calls: obsdata.c\ObpReferenceSecurityDescriptor ( VOID ObReleaseObjectSecurity ( IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN BOOLEAN MemoryAllocated ) Called By: obinsert.c\ObInsertObject obse.c\ObCheckObjectAccess obse.c\ObpCheckObjectReference obse.c\ObpCheckTraverseAccess obse.c\ObCheckCreateObjectAccess It Calls: obsdata.c\ObpDereferenceSecurityDescriptor ( NTSTATUS ObValidateSecurityQuota ( IN PVOID Object, IN ULONG NewSize ) Called By: It Calls: NTSTATUS ObAssignSecurity ( IN PACCESS_STATE AccessState, IN PSECURITY_DESCRIPTOR ParentDescriptor OPTIONAL, IN PVOID Object, IN POBJECT_TYPE ObjectType ) Called By: obinsert.c\ObInsertObject It Calls: NTSTATUS ObSetSecurityDescriptorInfo ( IN PVOID Object, IN PSECURITY_INFORMATION SecurityInformation, IN OUT PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping ) Called By: It Calls: obsdata.c\ObpLogSecurityDescriptor ( obsdata.c\ObpDereferenceSecurityDescriptor ( obsdata.c\ObpAcquireDescriptorCacheReadLock ( obsdata.c\ObpReleaseDescriptorCacheLock ( NTSTATUS ObpValidateAccessMask ( PACCESS_STATE AccessState ) Called By: obinsert.c\ObInsertObject obref.c\ObOpenObjectByName It Calls: Module Name: obtype.c Procedures NTSTATUS ObCreateObjectType ( IN PUNICODE_STRING TypeName, IN POBJECT_TYPE_INITIALIZER ObjectTypeInitializer, IN PSECURITY_DESCRIPTOR SecurityDescriptor OPTIONAL, OUT POBJECT_TYPE *ObjectType ) Called By: obinit.c\ObInitSystem It Calls: obcreate.c\ObpAllocateObject ( obdir.c\ObpLookupDirectoryEntry ( obdir.c\ObpInsertDirectoryEntry ( NTSTATUS ObEnumerateObjectsByType( IN POBJECT_TYPE ObjectType, IN OB_ENUM_OBJECT_TYPE_ROUTINE EnumerationRoutine, IN PVOID Parameter ) Called By: It Calls: NTSTATUS ObGetObjectInformation( IN PCHAR UserModeBufferAddress, OUT PSYSTEM_OBJECTTYPE_INFORMATION ObjectInformation, IN ULONG Length, OUT PULONG ReturnLength OPTIONAL ) Called By: It Calls: obquery.c\ObQueryNameString ( Module Name: obdir.c Procedures NTSTATUS NtCreateDirectoryObject ( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ) Called By: obinit.c\ObInitSystem obinit.c\ObpCreateDosDevicesDirectory It Calls: obcreate.c\ObCreateObject ( obinsert.c\ObInsertObject ( NTSTATUS NtOpenDirectoryObject ( OUT PHANDLE DirectoryHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ) Called By: It Calls: obref.c\ObOpenObjectByName ( PVOID ObpLookupDirectoryEntry ( IN POBJECT_DIRECTORY Directory, IN PUNICODE_STRING Name, IN ULONG Attributes ) Called By: obdir.c\ObpLookupObjectName obinit.c\ObInitSystem oblink.c\ObpProcessDosDeviceSymbolicLink obref.c\ObpDeleteNameCheck obtype.c\ObCreateObjectType It Calls: BOOLEAN ObpInsertDirectoryEntry ( IN POBJECT_DIRECTORY Directory, IN PVOID Object ) Called By: obdir.c\ObpLookupObjectName obinit.c\ObInitSystem obtype.c\ObCreateObjectType It Calls: obinit.c\ObInitSystem ( BOOLEAN ObpDeleteDirectoryEntry ( IN POBJECT_DIRECTORY Directory ) Called By: obinsert.c\ObInsertObject obref.c\ObpDeleteNameCheck It Calls: 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 ) Called By: obinsert.c\ObInsertObject obref.c\ObOpenObjectByName obref.c\ObReferenceObjectByName It Calls: obinit.c\UNICODE_STRING ObpDosDevicesShortName; obinit.c\ULARGE_INTEGER ObpDosDevicesShortNamePrefix; obinit.c\ULARGE_INTEGER ObpDosDevicesShortNameRoot obhandle.c\ObpIncrPointerCount ( obref.c\ObReferenceObjectByHandle ( obref.c\ObReferenceObjectByPointer ( obref.c\ObDereferenceObject ( obse.c\ObpCheckTraverseAccess ( obse.c\ObCheckCreateObjectAccess ( obdir.c\ObpLookupDirectoryEntry ( obdir.c\ObpInsertDirectoryEntry ( NTSTATUS NtQueryDirectoryObject ( IN HANDLE DirectoryHandle, OUT PVOID Buffer, IN ULONG Length, IN BOOLEAN ReturnSingleEntry, IN BOOLEAN RestartScan, IN OUT PULONG Context, OUT PULONG ReturnLength OPTIONAL ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( Module Name: obdevmap.c Procedures NTSTATUS ObSetDeviceMap ( IN PEPROCESS TargetProcess, IN HANDLE DirectoryHandle ) Called By: obinit.c\ObpCreateDosDevicesDirectory It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( NTSTATUS ObQueryDeviceMapInformation ( IN PEPROCESS TargetProcess, OUT PPROCESS_DEVICEMAP_INFORMATION DeviceMapInformation ) Called By: It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap VOID ObInheritDeviceMap ( IN PEPROCESS NewProcess, IN PEPROCESS ParentProcess ) Called By: It Calls: obinit.c\PDEVICE_MAP ObSystemDeviceMap VOID ObDereferenceDeviceMap ( IN PEPROCESS Process ) Called By: It Calls: obref.c\ObDereferenceObject ( Module Name: oblink.c Global variables and who references them extern POBJECT_TYPE IoDeviceObjectType; oblink.c\ObpProcessDosDeviceSymbolicLink Procedures 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 ) Called By: obinit.c\ObInitSystem It Calls: obref.c\ObReferenceObjectByPointer ( VOID ObpProcessDosDeviceSymbolicLink ( POBJECT_SYMBOLIC_LINK SymbolicLink, ULONG Action ) Called By: oblink.c\ObpDeleteSymbolicLinkName oblink.c\ObpCreateSymbolicLinkName It Calls: oblink.c\extern POBJECT_TYPE IoDeviceObjectType; obref.c\ObDereferenceObject ( obse.c\ObGetObjectSecurity ( obdir.c\ObpLookupDirectoryEntry ( VOID ObpDeleteSymbolicLinkName ( POBJECT_SYMBOLIC_LINK SymbolicLink ) Called By: obref.c\ObpDeleteNameCheck It Calls: oblink.c\ObpProcessDosDeviceSymbolicLink ( VOID ObpCreateSymbolicLinkName ( POBJECT_SYMBOLIC_LINK SymbolicLink ) Called By: obinsert.c\ObInsertObject It Calls: oblink.c\ObpProcessDosDeviceSymbolicLink ( NTSTATUS NtCreateSymbolicLinkObject ( OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PUNICODE_STRING LinkTarget ) Called By: obinit.c\ObpCreateDosDevicesDirectory It Calls: obcreate.c\ObCreateObject ( obinset.c\ObInsertObject ( obref.c\ObDereferenceObject ( NTSTATUS NtOpenSymbolicLinkObject ( OUT PHANDLE LinkHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes ) Called By: It Calls: obref.c\ObOpenObjectByName ( NTSTATUS NtQuerySymbolicLinkObject ( IN HANDLE LinkHandle, IN OUT PUNICODE_STRING LinkTarget, OUT PULONG ReturnedLength OPTIONAL ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( Module Name: obclose.c Global variables and who references them extern BOOLEAN SepAdtAuditingEnabled; obclose.c\NtClose Procedures NTSTATUS NtClose ( IN HANDLE Handle ) Called By: obhandle.c\NtDuplicateObject obinit.c\ObInitSystem obinit.c\ObpCreateDosDevicesDirectory It Calls: obclose.c\extern BOOLEAN SepAdtAuditingEnabled; obhandle.c\ObpDecrementHandleCount ( obhandle.c\ObpTranslateGrantedAccessIndex ( obref.c\ObDereferenceObject ( NTSTATUS NtMakeTemporaryObject ( IN HANDLE Handle ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( obclose.c\ObMakeTemporaryObject ( VOID ObMakeTemporaryObject ( IN PVOID Object ) Called By: obclose.c\NtMakeTemporaryObject It Calls: obref.c\ObpDeleteNameCheck ( Module Name: obquery.c Procedures NTSTATUS NtQueryObject ( IN HANDLE Handle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength OPTIONAL ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( obquery.c\ObQueryNameString ( obquery.c\ObQueryTypeInfo ( PUNICODE_STRING ObGetObjectName ( IN PVOID Object ) Called By: It Calls: NTSTATUS ObQueryNameString ( IN PVOID Object, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength ) Called By: obquery.c\NtQueryObject obtype.c\ObGetObjectInformation It Calls: NTSTATUS ObQueryTypeName ( IN PVOID Object, PUNICODE_STRING ObjectTypeName, IN ULONG Length, OUT PULONG ReturnLength ) Called By: obtype.c\ObGetObjectInformation It Calls: NTSTATUS ObQueryTypeInfo ( IN POBJECT_TYPE ObjectType, OUT POBJECT_TYPE_INFORMATION ObjectTypeInfo, IN ULONG Length, OUT PULONG ReturnLength ) Called By: obquery.c\NtQueryObject It Calls: NTSTATUS ObQueryObjectAuditingByHandle ( IN HANDLE Handle, OUT PBOOLEAN GenerateOnClose ) Called By: It Calls: BOOLEAN ObpSetHandleAttributes ( IN OUT PVOID TableEntry, IN ULONG Parameter ) Called By: obquery.c\NtSetInformationObject It Calls: NTSTATUS NTAPI NtSetInformationObject ( IN HANDLE Handle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, IN PVOID ObjectInformation, IN ULONG ObjectInformationLength ) Called By: obquery.c\ObpSetHandleAttributes ( It Calls: Module Name: obsdata.c Global variables and who references them ULONG ObsDebugFlags = 0; ULONG ObsTotalCacheEntries = 0; PLIST_ENTRY *ObsSecurityDescriptorCache = NULL; ERESOURCE ObsSecurityDescriptorCacheLock; Procedures NTSTATUS ObpInitSecurityDescriptorCache ( VOID ) Called By: obinit.c\ObInitSystem It Calls: ULONG ObpHashSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ) Called By: obsdata.c\ObpLogSecurityDescriptor It Calls: obsdata.c\ObpHashBuffer ( ULONG ObpHashBuffer ( PVOID Data, ULONG Length ) Called By: obsdata.c\ObpHashSecurityDescriptor It Calls: NTSTATUS ObpLogSecurityDescriptor ( IN PSECURITY_DESCRIPTOR InputSecurityDescriptor, OUT PSECURITY_DESCRIPTOR *OutputSecurityDescriptor ) Called By: obse.c\ObAssignObjectSecurityDescriptor obse.c\ObSetSecurityDescriptorInfo It Calls: obsdata.c\ObpHashSecurityDescriptor ( obsdata.c\ObpCreateCacheEntry ( obsdata.c\ObpCompareSecurityDescriptors ( obsdata.c\ObpAcquireDescriptorCacheWriteLock ( obsdata.c\ObpReleaseDescriptorCacheLock ( PSECURITY_DESCRIPTOR_HEADER ObpCreateCacheEntry ( PSECURITY_DESCRIPTOR InputSecurityDescriptor, ULONG FullHash ) Called By: obsdata.c\ObpLogSecurityDescriptor It Calls: PSECURITY_DESCRIPTOR ObpReferenceSecurityDescriptor ( PVOID Object ) Called By: obse.c\ObGetObjectSecurity It Calls: obsdata.c\ObpAcquireDescriptorCacheWriteLock ( obsdata.c\ObpReleaseDescriptorCacheLock ( NTSTATUS ObDeassignSecurity ( IN OUT PSECURITY_DESCRIPTOR *SecurityDescriptor ) Called By: It Calls: obsdata.c\ObpDereferenceSecurityDescriptor ( VOID ObpDereferenceSecurityDescriptor ( PSECURITY_DESCRIPTOR SecurityDescriptor ) Called By: obsdata.c\ObDeassignSecurity obse.c\ObReleaseObjectSecurity obse.c\ObSetSecurityDescriptorInfo It Calls: obsdata.c\ObpDestroySecurityDescriptorHeader ( obsdata.c\ObpAcquireDescriptorCacheWriteLock ( obsdata.c\ObpReleaseDescriptorCacheLock ( VOID ObpDestroySecurityDescriptorHeader ( IN PSECURITY_DESCRIPTOR_HEADER Header ) Called By: obsdata.c\ObpDereferenceSecurityDescriptor It Calls: BOOLEAN ObpCompareSecurityDescriptors ( IN PSECURITY_DESCRIPTOR SD1, IN PSECURITY_DESCRIPTOR SD2 ) Called By: obsdata.c\ObpLogSecurityDescriptor It Calls: VOID ObpAcquireDescriptorCacheWriteLock ( VOID ) Called By: obsdata.c\ObpLogSecurityDescriptor obsdata.c\ObpReferenceSecurityDescriptor obsdata.c\ObpDereferenceSecurityDescriptor It Calls: VOID ObpAcquireDescriptorCacheReadLock ( VOID ) Called By: obse.c\ObSetSecurityDescriptorInfo It Calls: VOID ObpReleaseDescriptorCacheLock ( VOID ) Called By: obsdata.c\ObpLogSecurityDescriptor obsdata.c\ObpReferenceSecurityDescriptor obsdata.c\ObpDereferenceSecurityDescriptor obse.c\ObSetSecurityDescriptorInfo It Calls: Module Name: obwait.c Global variables and who references them extern POBJECT_TYPE ExEventObjectType; obwait.c\NtSignalAndWaitForSingleObject extern POBJECT_TYPE ExMutantObjectType; obwait.c\NtSignalAndWaitForSingleObject extern POBJECT_TYPE ExSemaphoreObjectType; obwait.c\NtSignalAndWaitForSingleObject Procedures NTSTATUS NtSignalAndWaitForSingleObject ( IN HANDLE SignalHandle, IN HANDLE WaitHandle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ) Called By: It Calls: obwait.c\extern POBJECT_TYPE ExEventObjectType; obwait.c\extern POBJECT_TYPE ExSemaphoreObjectType; obwait.c\extern POBJECT_TYPE ExMutantObjectType; obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( NTSTATUS NtWaitForSingleObject ( IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject ( NTSTATUS NtWaitForMultipleObjects ( IN ULONG Count, IN HANDLE Handles[], IN WAIT_TYPE WaitType, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ) Called By: It Calls: obhandle.c\ObpIncrPointerCount ( obhandle.c\ObpTranslateGrantedAccessIndex ( obref.c\ObDereferenceObject ( NTSTATUS ObWaitForSingleObject ( IN HANDLE Handle, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL ) Called By: It Calls: obref.c\ObReferenceObjectByHandle ( obref.c\ObDereferenceObject (