Funzione RxDereference (rxprocs.h)
RxDereferencedecrementa il membro NodeReferenceCount di una struttura per uno per diverse strutture di dati con conteggio dei riferimenti usate da RDBSS.
Sintassi
void RxDereference(
[in, out] IN OUT PVOID Instance,
[in] IN LOCK_HOLDING_STATE LockHoldingState
);
Parametri
[in, out] Instance
Puntatore alla struttura dei dati con conteggio dei riferimenti da dereferenziare.
[in] LockHoldingState
Modalità in cui viene mantenuto il blocco appropriato per questa struttura di dati. Questo parametro può essere uno dei valori seguenti per l'enumerazione LOCK_HOLDING_STATE:
LHS_LockNotHeld
Un blocco non è attualmente mantenuto.
LHS_SharedLockHeld
Viene mantenuto un blocco condiviso.
LHS_ExclusiveLockHeld
Un blocco esclusivo è in corso.
Valore restituito
nessuno
Osservazioni
RxDereference può essere usato per dereferenza (decremento per uno) membro NodeReferenceCount nelle strutture di dati seguenti usate da RDBSS:
SRV_CALL
NET_ROOT
V_NET_ROOT
SRV_OPEN
FOBX
Se RxDereference viene chiamato con qualsiasi altro tipo di struttura dati RDBSS, la routine causa l'asserzione del sistema nelle build controllate.
Se il membro NodeReferenceCount è minore di 0 dopo essere stato derefenced (decremented) da RxDereference, RxDereference causa l'asserzione del sistema nelle build controllate.
Se il membro NodeReferenceCount decrementa su 1 e il parametro LockHoldingState è stato LHS_ExclusiveLockHeld, l'istanza della struttura di dati può essere completata immediatamente. In caso contrario, l'istanza della struttura di dati viene contrassegnata per essere scavengata e finalizzata in un secondo momento.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | rxprocs.h (includere Rxprocs.h) |
IRQL | <= APC_LEVEL |