RxDereference-Funktion (rxprocs.h)
RxDereference dekrementiert das NodeReferenceCount-Element einer Struktur um eins für mehrere von RDBSS verwendete Referenzdatenstrukturen.
Syntax
void RxDereference(
[in, out] IN OUT PVOID Instance,
[in] IN LOCK_HOLDING_STATE LockHoldingState
);
Parameter
[in, out] Instance
Ein Zeiger auf die zu dereferenzierende Datenstruktur mit Verweisanzahl.
[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 derzeit nicht gehalten.
LHS_SharedLockHeld
Eine freigegebene Sperre wird gehalten.
LHS_ExclusiveLockHeld
Eine exklusive Sperre wird gehalten.
Rückgabewert
Keine
Bemerkungen
RxDereference kann verwendet werden, um das NodeReferenceCount-Element in den folgenden von RDBSS verwendeten Datenstrukturen zu dereferenzieren (um eins zu dekrementieren):
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 ASSERT erhält.
Wenn das NodeReferenceCount-Element kleiner als 0 ist, nachdem er von RxDereference decremented (decremented) wurde, bewirkt RxDereference , dass das System bei überprüften Builds ASSERT erhält.
Wenn das NodeReferenceCount-Element auf 1 verringert wird und der LockHoldingState-Parameter LHS_ExclusiveLockHeld wurde, kann die instance der Datenstruktur sofort abgeschlossen werden. Andernfalls wird die instance der Datenstruktur markiert, um später abgefangen und abgeschlossen zu werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |