The ObReferenceObjectByPointer routine increments the pointer reference count for a given object.
NTSTATUS
ObReferenceObjectByPointer(
IN PVOID Object,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode
);
ObReferenceObjectByPointer returns an NTSTATUS value. Possible return values include:
STATUS_SUCCESS
STATUS_OBJECT_TYPE_MISMATCH
Declared in wdm.h and ntddk.h. Include wdm.h or ntddk.h.
Calling this routine prevents the object from being deleted, possibly by another component’s call to ObDereferenceObject or ZwClose. The caller must decrement the reference count with ObDereferenceObject as soon as it is done with the object.
Callers of ObReferenceObjectByPointer must be running at IRQL <= DISPATCH_LEVEL.
ObDereferenceObject, ObReferenceObject, ObReferenceObjectByHandle, ZwClose