ObOpenObjectByPointer

Dear all,

I have a few questions regarding ObOpenObjectByPointer() routine.
I have searched the list, but could not find enough information.

It has the following prototype:
NTKERNELAPI
NTSTATUS
ObOpenObjectByPointer(
IN PVOID Object,
IN ULONG HandleAttributes,
IN PACCESS_STATE PassedAccessState,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_TYPE ObjectType,
IN KPROCESSOR_MODE AccessMode,
OUT PHANDLE Handle
);

  1. Will this call result in IRP_MJ_CREATE being sent?
  2. What kind of access validation is performed when using this routine?
  3. How HandleAttributes and PassedAccessState affect its behavior?

Thank you very much in advance.

Regards,
Leonid Zhigunov.