Función ObReferenceObjectByPointer (wdm.h)

La rutina ObReferenceObjectByPointer incrementa el recuento de referencias de puntero para un objeto determinado.

Sintaxis

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

Parámetros

[in] Object

Puntero al cuerpo del objeto.

[in] DesiredAccess

Especifica una máscara que representa el acceso solicitado al objeto .

[in, optional] ObjectType

Puntero al tipo de objeto. ObjectType puede ser *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType o *TmTransactionObjectType.

Este parámetro también puede ser NULL si AccessMode es KernelMode.

[in] AccessMode

Indica el modo de acceso que se va a usar para la comprobación de acceso. Debe ser UserMode o KernelMode. Los controladores de nivel inferior deben especificar KernelMode.

Valor devuelto

ObReferenceObjectByPointer devuelve STATUS_SUCCESS cuando la rutina ha incrementado correctamente el recuento de referencias del cuerpo del objeto de destino. La rutina realiza la validación del tipo de objeto si la llamada se realiza en modo de usuario y si el tipo solicitado por el autor de la llamada no coincide con el del cuerpo del objeto, se devuelve STATUS_OBJECT_TYPE_MISMATCH. Se devuelve el mismo código NTSTATUS si el tipo solicitado es un tipo de vínculo simbólico (ObpSymbolicLinkObjectType), que no está permitido por la rutina, independientemente del tipo de modo de acceso.

Comentarios

Llamar a esta rutina impide que el objeto se elimine, posiblemente mediante la llamada de otro componente a ObDereferenceObject o ZwClose. El autor de la llamada debe disminuir el recuento de referencias con ObDereferenceObject tan pronto como se haga con el objeto .

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), TargetRelationNeedsRef(wdm)

Consulte también

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose