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) |