Макрос ObReferenceObject (wdm.h)

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

Синтаксис

void ObReferenceObject(
  [in]  Object
);

Параметры

[in] Object

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

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

None

Remarks

ObReferenceObject возвращает значение, зарезервированное для использования системой. Драйверы должны рассматривать это значение как VOID.

ObReferenceObject просто увеличивает количество ссылок указателя для объекта, не выполняя никаких проверок доступа к данному объекту, как это делают ObReferenceObjectByHandle и ObReferenceObjectByPointer .

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

Когда количество ссылок для объекта достигает нуля, компонент режима ядра может удалить объект из системы. Однако драйвер может удалить только те объекты, которые он создал, и драйвер никогда не должен пытаться удалить любой объект, который он не создал.

Требования

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

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

ObDereferenceObject

ObReferenceObjectByHandle

ObReferenceObjectByPointer

ZwClose