Fonction ObReferenceObjectByPointer (wdm.h)

La routine ObReferenceObjectByPointer incrémente le nombre de références de pointeur pour un objet donné.

Syntaxe

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

Paramètres

[in] Object

Pointeur vers le corps de l’objet.

[in] DesiredAccess

Spécifie un masque représentant l’accès demandé à l’objet.

[in, optional] ObjectType

Pointeur vers le type d’objet. ObjectType peut être *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType ou *TmTransactionObjectType.

Ce paramètre peut également avoir la valeur NULL si AccessMode est KernelMode.

[in] AccessMode

Indique le mode d’accès à utiliser pour le case activée d’accès. Il doit être UserMode ou KernelMode. Les pilotes de niveau inférieur doivent spécifier KernelMode.

Valeur retournée

ObReferenceObjectByPointer retourne STATUS_SUCCESS lorsque la routine a incrémenté le nombre de références du corps de l’objet cible. La routine effectue la validation du type d’objet si l’appel est effectué en mode utilisateur et si le type demandé par l’appelant ne correspond pas à celui du corps de l’objet, STATUS_OBJECT_TYPE_MISMATCH est retourné. Le même code NTSTATUS est retourné si le type demandé est un type de lien symbolique (ObpSymbolicLinkObjectType) qui n’est pas autorisé par la routine, quel que soit le type de mode d’accès.

Remarques

L’appel de cette routine empêche la suppression de l’objet, éventuellement par l’appel d’un autre composant à ObDereferenceObject ou ZwClose. L’appelant doit décrémenter le nombre de références avec ObDereferenceObject dès qu’il a terminé avec l’objet.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),TargetRelationNeedsRef(wdm)

Voir aussi

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose