Função ObReferenceObjectByPointer (wdm.h)

A rotina ObReferenceObjectByPointer incrementa a contagem de referência de ponteiro para um determinado objeto.

Sintaxe

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

Parâmetros

[in] Object

Ponteiro para o corpo do objeto.

[in] DesiredAccess

Especifica uma máscara que representa o acesso solicitado ao objeto .

[in, optional] ObjectType

Ponteiro para o tipo de objeto. ObjectType pode ser *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType ou *TmTransactionObjectType.

Esse parâmetro também poderá ser NULL se AccessMode for KernelMode.

[in] AccessMode

Indica o modo de acesso a ser usado para o marcar de acesso. Ele deve ser UserMode ou KernelMode. Drivers de nível inferior devem especificar KernelMode.

Retornar valor

ObReferenceObjectByPointer retorna STATUS_SUCCESS quando a rotina incrementou com êxito a contagem de referência do corpo do objeto de destino. A rotina executará a validação do tipo de objeto se a chamada estiver sendo executada no modo de usuário e se o tipo solicitado pelo chamador não corresponder ao do corpo do objeto, STATUS_OBJECT_TYPE_MISMATCH será retornado. O mesmo código NTSTATUS será retornado se o tipo solicitado for um tipo de link simbólico (ObpSymbolicLinkObjectType) que não é permitido pela rotina, independentemente do tipo de modo de acesso.

Comentários

Chamar essa rotina impede que o objeto seja excluído, possivelmente pela chamada de outro componente para ObDereferenceObject ou ZwClose. O chamador deve diminuir a contagem de referência com ObDereferenceObject assim que for feito com o objeto .

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), TargetRelationNeedsRef(wdm)

Confira também

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose