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