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

Weitere Informationen

RxReference

Die FOBX-Struktur

Die NET_ROOT-Struktur

Die SRV_CALL-Struktur

Die SRV_OPEN-Struktur

Die V_NET_ROOT-Struktur