Freigeben über


ObfReferenceObject-Funktion (wdm.h)

Die ObfReferenceObject-Routine erhöht die Verweisanzahl auf das angegebene Objekt.

Syntax

LONG_PTR ObfReferenceObject(
  [in] PVOID Object
);

Parameter

[in] Object

Zeiger auf das Objekt. Der Aufrufer hat diesen Parameter entweder beim Erstellen des Objekts oder aus einem vorherigen Aufruf von ObReferenceObjectByHandle abgerufen, nachdem er das Objekt geöffnet hat.

Rückgabewert

ObfReferenceObject gibt einen Wert zurück, der für die Systemverwendung reserviert ist. Treiber müssen diesen Wert als VOID behandeln.

Hinweise

ObfReferenceObject erhöht einfach die Zeigerverweisanzahl für ein Objekt, ohne Zugriffsprüfungen für das angegebene Objekt durchzuführen, wie ObReferenceObjectByHandle und ObReferenceObjectByPointer tun.

ObfReferenceObject verhindert das Löschen des Objekts zumindest so lange, bis der Treiber anschließend sein reziprokes ObDereferenceObject aufruft oder das angegebene Objekt schließt. Der Aufrufer muss die Verweisanzahl mit ObDereferenceObject dekrementieren, sobald dies mit dem Objekt erfolgt ist.

Wenn die Verweisanzahl für ein Objekt 0 erreicht, kann eine Kernelmoduskomponente das Objekt aus dem System entfernen. Ein Treiber kann jedoch nur die Objekte entfernen, die er erstellt hat, und ein Treiber sollte niemals versuchen, ein Objekt zu entfernen, das er nicht erstellt hat.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Desktop
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDDIs(storport), TargetRelationNeedsRef(wdm)

Weitere Informationen

ObDereferenceObject

ObReferenceObjectByHandle

ObReferenceObjectByPointer

ZwClose