RxDereference-Funktion (rxprocs.h)
RxDereference das NodeReferenceCount Element einer Struktur um eins für mehrere referenzierte Datenstrukturen erweitert, die von RDBSS verwendet werden.
Syntax
void RxDereference(
[in, out] IN OUT PVOID Instance,
[in] IN LOCK_HOLDING_STATE LockHoldingState
);
Parameter
[in, out] Instance
Ein Zeiger auf die referenzgezählte Datenstruktur, die abgeleitet werden soll.
[in] LockHoldingState
Der Modus, in dem die entsprechende Sperre für diese Datenstruktur gehalten wird. Dieser Parameter kann einer der folgenden Werte für die LOCK_HOLDING_STATE-Enumeration sein:
LHS_LockNotHeld
Eine Sperre wird zurzeit nicht gehalten.
LHS_SharedLockHeld
Eine freigegebene Sperre wird gehalten.
LHS_ExclusiveLockHeld
Eine exklusive Sperre wird gehalten.
Rückgabewert
Nichts
Bemerkungen
RxDereference- kann verwendet werden, um das NodeReferenceCount-Element in den folgenden von RDBSS verwendeten Datenstrukturen abzuleiten (um eins zu erhöhen):
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
Wenn RxDereference- mit einem anderen Typ von RDBSS-Datenstruktur aufgerufen wird, bewirkt die Routine, dass das System bei überprüften Builds ASSERTION ausführt.
Wenn das NodeReferenceCount Member kleiner als 0 ist, nachdem es von RxDereferencedecrementiert wurde, führt RxDereference bewirkt, dass das System bei überprüften Builds ASSERTION ausführt.
Wenn der NodeReferenceCount Member auf 1 erhöht und der LockHoldingState Parameter LHS_ExclusiveLockHeld wurde, kann die Instanz der Datenstruktur sofort abgeschlossen werden. Andernfalls wird die Instanz der Datenstruktur so markiert, dass sie später gerüstet und abgeschlossen werden soll.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | rxprocs.h (include Rxprocs.h) |
IRQL- | <= APC_LEVEL |