Freigeben über


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

Siehe auch

RxReference-

Die FOBX-Struktur

NET_ROOT Struktur

SRV_CALL Struktur

SRV_OPEN Struktur

V_NET_ROOT Struktur