Функция ObReferenceObjectByPointer (wdm.h)

Подпрограмма ObReferenceObjectByPointer увеличивает количество ссылок указателя для заданного объекта.

Синтаксис

NTSTATUS ObReferenceObjectByPointer(
  [in]           PVOID           Object,
  [in]           ACCESS_MASK     DesiredAccess,
  [in, optional] POBJECT_TYPE    ObjectType,
  [in]           KPROCESSOR_MODE AccessMode
);

Параметры

[in] Object

Указатель на тело объекта.

[in] DesiredAccess

Задает маску, представляющую запрошенный доступ к объекту .

[in, optional] ObjectType

Указатель на тип объекта. ObjectType может иметь значение *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType или *TmTransactionObjectType.

Этот параметр также может иметь значение NULL , если AccessMode имеет значение KernelMode.

[in] AccessMode

Указывает режим доступа, используемый для проверка доступа. Он должен иметь значение UserMode или KernelMode. Драйверы более низкого уровня должны указывать KernelMode.

Возвращаемое значение

ObReferenceObjectByPointer возвращает STATUS_SUCCESS, если подпрограмма успешно увеличила число ссылок тела целевого объекта. Подпрограмма выполняет проверку типа объекта, если вызов выполняется в пользовательском режиме и если тип, запрошенный вызывающим объектом, не совпадает с типом из тела объекта, возвращается STATUS_OBJECT_TYPE_MISMATCH. Тот же код NTSTATUS возвращается, если запрошенный тип является типом символьной ссылки (ObpSymbolicLinkObjectType), который не разрешен подпрограммой, независимо от типа режима доступа.

Комментарии

Вызов этой подпрограммы предотвращает удаление объекта, возможно, путем вызова другого компонента ObDereferenceObject или ZwClose. Вызывающий объект должен уменьшать количество ссылок с помощью ObDereferenceObject сразу после завершения работы с объектом .

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs(storport), TargetRelationNeedsRef(wdm)

См. также раздел

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose