ReactOS 0.4.16-dev-303-g11d5cb8
|
#include "ex.h"
Go to the source code of this file.
Macros | |
#define | OBP_LOCK_STATE_PRE_ACQUISITION_EXCLUSIVE 0xAAAA1234 |
#define | OBP_LOCK_STATE_PRE_ACQUISITION_SHARED 0xBBBB1234 |
#define | OBP_LOCK_STATE_POST_ACQUISITION_EXCLUSIVE 0xCCCC1234 |
#define | OBP_LOCK_STATE_POST_ACQUISITION_SHARED 0xDDDD1234 |
#define | OBP_LOCK_STATE_RELEASED 0xEEEE1234 |
#define | OBP_LOCK_STATE_INITIALIZED 0xFFFF1234 |
#define | OBP_NAME_LOOKASIDE_MAX_SIZE 248 |
FORCEINLINE VOID ObpAcquireDirectoryLockExclusive | ( | IN POBJECT_DIRECTORY | Directory, |
IN POBP_LOOKUP_CONTEXT | Context | ||
) |
Locks a directory for exclusive access. Used for writing/reading members of the directory object.
Definition at line 212 of file ob_x.h.
Referenced by NtSetInformationObject(), and ObpAcquireLookupContextLock().
FORCEINLINE VOID ObpAcquireDirectoryLockShared | ( | IN POBJECT_DIRECTORY | Directory, |
IN POBP_LOOKUP_CONTEXT | Context | ||
) |
Locks a directory for shared access. Used for reading members of the directory object.
Definition at line 185 of file ob_x.h.
Referenced by NtQueryDirectoryObject(), and ObpLookupEntryDirectory().
FORCEINLINE VOID ObpAcquireLookupContextLock | ( | IN POBP_LOOKUP_CONTEXT | Context, |
IN POBJECT_DIRECTORY | Directory | ||
) |
Locks an object directory lookup context for performing lookup operations (insertions/deletions) in a directory. The directory is locked for exclusive access.
[in] | Context | The lookup context to lock. |
[in] | Directory | The directory on which the lookup context applies. |
Definition at line 281 of file ob_x.h.
Referenced by ObCreateObjectType(), ObInitSystem(), ObpDeleteNameCheck(), and ObpLookupObjectName().
FORCEINLINE VOID ObpAcquireObjectLock | ( | IN POBJECT_HEADER | ObjectHeader | ) |
Definition at line 48 of file ob_x.h.
Referenced by NtQuerySymbolicLinkObject(), ObInsertObject(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObpSetPermanentObject(), and ObSetSecurityDescriptorInfo().
FORCEINLINE VOID ObpAcquireObjectLockShared | ( | IN POBJECT_HEADER | ObjectHeader | ) |
Definition at line 66 of file ob_x.h.
Referenced by ObpReferenceSecurityDescriptor().
FORCEINLINE PVOID ObpAllocateObjectCreateInfoBuffer | ( | IN PP_NPAGED_LOOKASIDE_NUMBER | Type | ) |
Definition at line 379 of file ob_x.h.
Referenced by ObCreateObject(), and ObpAllocateObjectNameBuffer().
FORCEINLINE VOID ObpCalloutEnd | ( | IN KIRQL | CalloutIrql, |
IN PCHAR | Procedure, | ||
IN POBJECT_TYPE | ObjectType, | ||
IN PVOID | Object | ||
) |
Definition at line 505 of file ob_x.h.
Referenced by ObAssignSecurity(), ObGetObjectSecurity(), ObpCloseHandleTableEntry(), ObpDecrementHandleCount(), ObpDeleteObject(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), and ObpLookupObjectName().
FORCEINLINE VOID ObpCalloutStart | ( | IN PKIRQL | CalloutIrql | ) |
Definition at line 497 of file ob_x.h.
Referenced by ObAssignSecurity(), ObGetObjectSecurity(), ObpCloseHandleTableEntry(), ObpDecrementHandleCount(), ObpDeleteObject(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), and ObpLookupObjectName().
FORCEINLINE VOID ObpDereferenceNameInfo | ( | IN POBJECT_HEADER_NAME_INFO | HeaderNameInfo | ) |
Definition at line 143 of file ob_x.h.
Referenced by ObInsertObject(), ObpCreateSymbolicLinkName(), ObpDeleteNameCheck(), ObpProcessDosDeviceSymbolicLink(), ObpReleaseLookupContextObject(), ObSetDeviceMap(), and ObSetDirectoryDeviceMap().
FORCEINLINE VOID ObpEnterObjectTypeMutex | ( | IN POBJECT_TYPE | ObjectType | ) |
Definition at line 340 of file ob_x.h.
Referenced by ObCreateObjectType(), ObpDeleteObject(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObSetDeviceMap(), and ObSetDirectoryDeviceMap().
FORCEINLINE VOID ObpFreeCapturedAttributes | ( | IN PVOID | Buffer, |
IN PP_NPAGED_LOOKASIDE_NUMBER | Type | ||
) |
Definition at line 416 of file ob_x.h.
Referenced by ObCreateObject(), ObFreeObjectCreateInfoBuffer(), ObpFreeObjectCreateInformation(), and ObpFreeObjectNameBuffer().
FORCEINLINE VOID ObpFreeObjectCreateInformation | ( | IN POBJECT_CREATE_INFORMATION | ObjectCreateInfo | ) |
Definition at line 460 of file ob_x.h.
Referenced by ObCreateObject(), ObDeleteCapturedInsertInfo(), ObInsertObject(), ObOpenObjectByName(), and ObpDeallocateObject().
FORCEINLINE VOID ObpInitializeLookupContext | ( | IN POBP_LOOKUP_CONTEXT | Context | ) |
Initializes a new object directory lookup context. Used for lookup operations (insertions/deletions) in a directory. Employed in conjunction with the directory locking functions.
[in] | Context | The new lookup context to initialize. |
Definition at line 258 of file ob_x.h.
Referenced by NtQueryDirectoryObject(), NtSetInformationObject(), ObCreateObjectType(), ObInitSystem(), ObInsertObject(), ObpDeleteNameCheck(), ObpLookupObjectName(), and ObpProcessDosDeviceSymbolicLink().
FORCEINLINE VOID ObpLeaveObjectTypeMutex | ( | IN POBJECT_TYPE | ObjectType | ) |
Definition at line 352 of file ob_x.h.
Referenced by ObCreateObjectType(), ObpDeleteObject(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObSetDeviceMap(), and ObSetDirectoryDeviceMap().
FORCEINLINE POBJECT_HEADER_NAME_INFO ObpReferenceNameInfo | ( | IN POBJECT_HEADER | ObjectHeader | ) |
Definition at line 102 of file ob_x.h.
Referenced by ObInsertObject(), ObpCreateSymbolicLinkName(), ObpDeleteNameCheck(), ObpLookupEntryDirectory(), ObpProcessDosDeviceSymbolicLink(), ObSetDeviceMap(), and ObSetDirectoryDeviceMap().
FORCEINLINE VOID ObpReleaseDirectoryLock | ( | IN POBJECT_DIRECTORY | Directory, |
IN POBP_LOOKUP_CONTEXT | Context | ||
) |
Unlocks a previously shared or exclusively locked directory.
Definition at line 238 of file ob_x.h.
Referenced by NtQueryDirectoryObject(), NtSetInformationObject(), ObpLookupEntryDirectory(), and ObpReleaseLookupContext().
FORCEINLINE VOID ObpReleaseLookupContext | ( | IN POBP_LOOKUP_CONTEXT | Context | ) |
Releases an initialized object directory lookup context. Unlocks it if necessary, and dereferences the underlying object.
[in] | Context | The lookup context to release. |
Definition at line 323 of file ob_x.h.
Referenced by NtSetInformationObject(), ObCreateObjectType(), ObInitSystem(), ObInsertObject(), ObOpenObjectByName(), ObpCreateHandle(), ObpDeleteNameCheck(), ObpLookupObjectName(), ObpProcessDosDeviceSymbolicLink(), and ObReferenceObjectByName().
FORCEINLINE VOID ObpReleaseLookupContextObject | ( | IN POBP_LOOKUP_CONTEXT | Context | ) |
Definition at line 292 of file ob_x.h.
Referenced by ObpLookupEntryDirectory(), and ObpReleaseLookupContext().
FORCEINLINE VOID ObpReleaseObjectCreateInformation | ( | IN POBJECT_CREATE_INFORMATION | ObjectCreateInfo | ) |
Definition at line 364 of file ob_x.h.
Referenced by ObOpenObjectByName(), ObpCaptureObjectCreateInformation(), and ObpFreeObjectCreateInformation().
FORCEINLINE VOID ObpReleaseObjectLock | ( | IN POBJECT_HEADER | ObjectHeader | ) |
Definition at line 84 of file ob_x.h.
Referenced by NtQuerySymbolicLinkObject(), ObInsertObject(), ObpDecrementHandleCount(), ObpDeleteNameCheck(), ObpIncrementHandleCount(), ObpIncrementUnnamedHandleCount(), ObpReferenceSecurityDescriptor(), ObpSetPermanentObject(), and ObSetSecurityDescriptorInfo().
FORCEINLINE ULONG ObpSelectObjectLockSlot | ( | IN POBJECT_HEADER | ObjectHeader | ) |
Definition at line 40 of file ob_x.h.
Referenced by ObpAcquireObjectLock(), ObpAcquireObjectLockShared(), and ObpReleaseObjectLock().
FORCEINLINE ULONG ObpValidateAttributes | ( | IN ULONG | Attributes, |
IN KPROCESSOR_MODE | PreviousMode | ||
) |
Definition at line 22 of file ob_x.h.
Referenced by NtOpenProcess(), NtOpenProcessTokenEx(), NtOpenThread(), NtOpenThreadTokenEx(), and ProbeAndCaptureObjectAttributes().