ObReferenceObject-Makro (wdm.h)
Die ObReferenceObject-Routine erhöht die Verweisanzahl auf das angegebene Objekt.
Syntax
void ObReferenceObject(
[in] 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
Keine
Bemerkungen
ObReferenceObject gibt einen Wert zurück, der für die Systemverwendung reserviert ist. Treiber müssen diesen Wert als VOID behandeln.
ObReferenceObject erhöht einfach die Zeigerverweisanzahl für ein Objekt, ohne Zugriffsprüfungen für das angegebene Objekt durchzuführen, wie ObReferenceObjectByHandle und ObReferenceObjectByPointer tun.
ObReferenceObject 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) |