34 if (!OldValue)
return FALSE;
43 if (OldValue == NewValue)
return TRUE;
331 return Header->PointerCount;
372 #undef ObDereferenceObject LONG FASTCALL ObReferenceObjectEx(IN PVOID Object, IN LONG Count)
LONG_PTR FASTCALL ObfDereferenceObject(IN PVOID Object)
BOOLEAN NTAPI ObpCheckObjectReference(IN PVOID Object, IN OUT PACCESS_STATE AccessState, IN BOOLEAN LockHeld, IN KPROCESSOR_MODE AccessMode, OUT PNTSTATUS AccessStatus)
FORCEINLINE PVOID ExGetObjectFastReference(IN EX_FAST_REF FastRef)
_Must_inspect_result_ _In_ WDFDEVICE _In_ ULONG _In_ ACCESS_MASK DesiredAccess
FORCEINLINE VOID ExInitializeFastReference(OUT PEX_FAST_REF FastRef, IN OPTIONAL PVOID Object)
NTSTATUS NTAPI SeCreateAccessState(IN OUT PACCESS_STATE AccessState, IN PAUX_ACCESS_DATA AuxData, IN ACCESS_MASK Access, IN PGENERIC_MAPPING GenericMapping)
VOID NTAPI ExQueueWorkItem(IN PWORK_QUEUE_ITEM WorkItem, IN WORK_QUEUE_TYPE QueueType)
FORCEINLINE BOOLEAN ExInsertFastReference(IN OUT PEX_FAST_REF FastRef, IN PVOID Object)
BOOLEAN NTAPI KeAreAllApcsDisabled(VOID)
#define PsGetCurrentThread()
WORK_QUEUE_ITEM ObpReaperWorkItem
#define BooleanFlagOn(F, SF)
BOOLEAN FASTCALL ObReferenceObjectSafe(IN PVOID Object)
PHANDLE_TABLE_ENTRY NTAPI ExMapHandleToPointer(IN PHANDLE_TABLE HandleTable, IN HANDLE Handle)
VOID NTAPI ObpFreeObjectNameBuffer(IN PUNICODE_STRING Name)
LONG_PTR FASTCALL ObfReferenceObject(IN PVOID Object)
#define NtCurrentThread()
_Inout_opt_ PACCESS_STATE PassedAccessState
VOID FASTCALL ObFastDereferenceObject(IN PEX_FAST_REF FastRef, IN PVOID Object)
static XMS_HANDLE HandleTable[XMS_MAX_HANDLES]
VOID NTAPI ObDereferenceObject(IN PVOID Object)
GENERIC_MAPPING GenericMapping
_In_ PVOID _Out_opt_ PULONG_PTR _Outptr_opt_ PCUNICODE_STRING * ObjectName
VOID NTAPI ExUnlockHandleTableEntry(IN PHANDLE_TABLE HandleTable, IN PHANDLE_TABLE_ENTRY HandleTableEntry)
#define STATUS_INVALID_HANDLE
#define OBJECT_TO_OBJECT_HEADER(o)
VOID NTAPI ObpDeferObjectDeletion(IN POBJECT_HEADER Header)
FORCEINLINE EX_FAST_REF ExAcquireFastReference(IN OUT PEX_FAST_REF FastRef)
PVOID FASTCALL ObFastReferenceObject(IN PEX_FAST_REF FastRef)
NTSTATUS NTAPI ObReferenceObjectByHandle(IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation OPTIONAL)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define InterlockedIncrementSizeT(a)
VOID NTAPI ObDereferenceObjectDeferDelete(IN PVOID Object)
VOID NTAPI ObpDeleteObject(IN PVOID Object, IN BOOLEAN CalledFromWorkerThread)
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
#define InterlockedCompareExchangePointer
#define PsGetCurrentProcess
FORCEINLINE EX_FAST_REF ExSwapFastReference(IN PEX_FAST_REF FastRef, IN PVOID Object)
#define ObpGetHandleObject(x)
LONG FASTCALL ObDereferenceObjectEx(IN PVOID Object, IN LONG Count)
NTSTATUS NTAPI ObReferenceObjectByPointer(IN PVOID Object, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode)
PHANDLE_TABLE ObpKernelHandleTable
_In_ WDFREQUEST _In_ WDFFILEOBJECT FileObject
#define NtCurrentProcess()
#define STATUS_OBJECT_TYPE_MISMATCH
volatile PVOID ObpReaperList
#define NT_SUCCESS(StatCode)
NTSTATUS NTAPI IoComputeDesiredAccessFileObject(IN PFILE_OBJECT FileObject, IN PACCESS_MASK DesiredAccess)
VOID FASTCALL ObInitializeFastReference(IN PEX_FAST_REF FastRef, IN PVOID Object OPTIONAL)
_In_ ACCESS_MASK _In_opt_ POBJECT_TYPE _In_ KPROCESSOR_MODE _Out_ PVOID _Out_opt_ POBJECT_HANDLE_INFORMATION HandleInformation
NTSTATUS NTAPI ObReferenceFileObjectForWrite(IN HANDLE Handle, IN KPROCESSOR_MODE AccessMode, OUT PFILE_OBJECT *FileObject, OUT POBJECT_HANDLE_INFORMATION HandleInformation)
FORCEINLINE ULONG ExGetCountFastReference(IN EX_FAST_REF FastRef)
#define STATUS_ACCESS_DENIED
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState
POBJECT_TYPE PsThreadType
#define InterlockedExchangeAddSizeT(a, b)
FORCEINLINE BOOLEAN ExReleaseFastReference(IN PEX_FAST_REF FastRef, IN PVOID Object)
#define KeEnterCriticalRegion()
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
FORCEINLINE VOID ObpReleaseLookupContext(IN POBP_LOOKUP_CONTEXT Context)
#define ObpSymbolicLinkObjectType
#define KeLeaveCriticalRegion()
#define STATUS_OBJECT_NAME_INVALID
VOID NTAPI SeDeleteAccessState(IN PACCESS_STATE AccessState)
#define FLG_KERNEL_STACK_TRACE_DB
#define InterlockedCompareExchangeSizeT(Destination, Exchange, Comperand)
struct tagContext Context
#define ObReferenceObject
NTSTATUS NTAPI ObpCaptureObjectName(IN PUNICODE_STRING CapturedName, IN PUNICODE_STRING ObjectName, IN KPROCESSOR_MODE AccessMode, IN BOOLEAN AllocateFromLookaside)
#define InterlockedDecrementSizeT(a)
#define ObKernelHandleToHandle(Handle)
PVOID FASTCALL ObFastReplaceObject(IN PEX_FAST_REF FastRef, PVOID Object)
#define OBJ_HANDLE_ATTRIBUTES
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
ULONG ObpAccessProtectCloseBit
NTSTATUS NTAPI ObReferenceObjectByName(IN PUNICODE_STRING ObjectPath, IN ULONG Attributes, IN PACCESS_STATE PassedAccessState, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext, OUT PVOID *ObjectPtr)
POBJECT_TYPE PsProcessType
base of all file and directory entries
PVOID FASTCALL ObFastReferenceObjectLocked(IN PEX_FAST_REF FastRef)
NTSTATUS NTAPI ObpLookupObjectName(IN HANDLE RootHandle OPTIONAL, IN OUT PUNICODE_STRING ObjectName, IN ULONG Attributes, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, IN OUT PVOID ParseContext, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, IN PVOID InsertObject OPTIONAL, IN OUT PACCESS_STATE AccessState, OUT POBP_LOOKUP_CONTEXT LookupContext, OUT PVOID *FoundObject)
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
PULONG MinorVersion OPTIONAL