RxDereference, fonction (rxprocs.h)

RxDereference décrémente le membre NodeReferenceCount d’une structure d’un pour plusieurs structures de données comptabilisées de référence utilisées par RDBSS.

Syntaxe

void RxDereference(
  [in, out] IN OUT PVOID          Instance,
  [in]      IN LOCK_HOLDING_STATE LockHoldingState
);

Paramètres

[in, out] Instance

Pointeur vers la structure de données à compter des références à déréférencée.

[in] LockHoldingState

Mode dans lequel le verrou approprié pour cette structure de données est conservé. Ce paramètre peut être l’une des valeurs suivantes pour l’énumération LOCK_HOLDING_STATE :

LHS_LockNotHeld

Un verrou n’est actuellement pas conservé.

LHS_SharedLockHeld

Un verrou partagé est en cours de détention.

LHS_ExclusiveLockHeld

Un verrou exclusif est en cours.

Valeur de retour

None

Remarques

RxDereference peut être utilisé pour déréférencer (décrémenter d’un) le membre NodeReferenceCount sur les structures de données suivantes utilisées par RDBSS :

SRV_CALL

NET_ROOT

V_NET_ROOT

SRV_OPEN

FOBX

Si RxDereference est appelé avec un autre type de structure de données RDBSS, la routine entraîne l’assertion du système sur les builds vérifiées.

Si le membre NodeReferenceCount est inférieur à 0 après avoir été déréférencementé (décrémenté) par RxDereference, RxDereference entraîne l’assertion du système sur les builds vérifiées.

Si le membre NodeReferenceCount décrémente à 1 et que le paramètre LockHoldingState a été LHS_ExclusiveLockHeld, la instance de la structure de données peut être finalisée immédiatement. Sinon, la instance de la structure de données est marquée pour être récupérée et finalisée ultérieurement.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête rxprocs.h (inclure Rxprocs.h)
IRQL <= APC_LEVEL

Voir aussi

RxReference

The FOBX Structure

The NET_ROOT Structure

The SRV_CALL Structure

The SRV_OPEN Structure

The V_NET_ROOT Structure