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