Freigeben über


ObReferenceObjectByPointer-Funktion (wdm.h)

Die ObReferenceObjectByPointer-Routine erhöht die Anzahl der Zeigerreferenzen für ein bestimmtes Objekt.

Syntax

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

Parameter

[in] Object

Zeiger auf den Textkörper des Objekts.

[in] DesiredAccess

Gibt eine Maske an, die den angeforderten Zugriff auf das Objekt darstellt.

[in, optional] ObjectType

Zeiger auf den Objekttyp. ObjectType kann *ExEventObjectType, *ExSemaphoreObjectType, *IoFileObjectType, *PsProcessType, *PsThreadType, *SeTokenObjectType, *TmEnlistmentObjectType, *TmResourceManagerObjectType, *TmTransactionManagerObjectType oder *TmTransactionObjectType sein.

Dieser Parameter kann auch NULL sein, wenn AccessModeKernelMode ist.

[in] AccessMode

Gibt den Zugriffsmodus an, der für die Zugriffsprüfung verwendet werden soll. Es muss entweder UserMode oder KernelMode sein. Treiber auf niedrigerer Ebene sollten KernelMode angeben.

Rückgabewert

ObReferenceObjectByPointer gibt STATUS_SUCCESS zurück, wenn die Routine die Verweisanzahl des Textkörpers des Zielobjekts erfolgreich erhöht hat. Die Routine führt die Objekttypüberprüfung durch, wenn der Aufruf im Benutzermodus ausgeführt wird und wenn der vom Aufrufer angeforderte Typ nicht mit dem typ aus dem Textkörper des Objekts übereinstimmt, wird STATUS_OBJECT_TYPE_MISMATCH zurückgegeben. Der gleiche NTSTATUS-Code wird zurückgegeben, wenn der angeforderte Typ ein symbolischer Linktyp (ObpSymbolicLinkObjectType) ist, der von der Routine nicht zulässig ist, unabhängig davon, welche Art von Zugriffsmodus es ist.

Hinweise

Das Aufrufen dieser Routine verhindert, dass das Objekt gelöscht wird, möglicherweise durch den Aufruf einer anderen Komponente an ObDereferenceObject oder ZwClose. Der Aufrufer muss die Verweisanzahl mit ObDereferenceObject dekrementieren, sobald dies mit dem Objekt erfolgt ist.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), TargetRelationNeedsRef(wdm)

Weitere Informationen

ObDereferenceObject

ObReferenceObject

ObReferenceObjectByHandle

ZwClose