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 |