Partager via


fonction RxDereferenceAndDeleteRxContext_Real (rxcontx.h)

RxDereferenceAndDeleteRxContext_Real déréférence une structure de données RX_CONTEXT et si le membre ReferenceCount passe à zéro, il désalloue et supprime la structure RX_CONTEXT spécifiée des structures de données en mémoire RDBSS.

Syntaxe

void RxDereferenceAndDeleteRxContext_Real(
  [in] IN PRX_CONTEXT RxContext
);

Paramètres

[in] RxContext

Pointeur vers la structure RX_CONTEXT à supprimer.

Valeur de retour

Aucun

Remarques

RxDereferenceAndDeleteRxContext_Real est appelée par des routines autres que RxCompleteRequest pendant les requêtes asynchrones qui touchent le paramètre RxContext dans le thread de lancement ou dans un autre thread. Ainsi, la structure de données RX_CONTEXT est comptabilisée et finalisée lors de la dernière inférence.

Si le ReferenceCount membre de la structure RX_CONTEXT pointée par le paramètre RxContext n’est pas égal à zéro après avoir été déréféré (décrémenté) par la routine de RxDereferenceAndDeleteRxContext_Real, RxDereferenceAndDeleteRxContext_Real provoque l’assertion du système sur les builds vérifiées.

La routine RxDereferenceAndDeleteRxContext_Real effectue un certain nombre de vérifications spécifiques avant de supprimer un RX_CONTEXT. Ces vérifications sont les suivantes :

  • Si le membre AcquireReleaseFcbTrackerX est 0, RxDereferenceAndDeleteRxContext_Real entraîne l’assertion du système sur les builds vérifiées.
  • Si le membre NumberOfActiveContexts de la structure RDBSS_DEVICE_OBJECT associée pointant vers rxContext->RxDeviceObject n’est pas égal à zéro après avoir été déréféré (décrémenté) et le StartStopContext.pStopContext membre de la structure RDBSS_DEVICE_OBJECT associée n’est pas NULL, puis RxDereferenceAndDeleteRxContext_Real signale l’événement SyncEvent sur la structure RX_CONTEXT dans le membre StartStopContext.pStopContext membre.
Si la structure RX_CONTEXT a été allouée à partir de la mémoire du pool de pages non page (le Indicateurs membre de la structure RX_CONTEXT a l’option RX_CONTEXT_FLAG_FROM_POOL définie), la structure RX_CONTEXT pointée par le paramètre RxContext sera retournée à une liste de lookaside RDBSS interne ou à la mémoire de pool non paginée.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête rxcontx.h (include Rxprocs.h rxcontx.h)
IRQL <= APC_LEVEL

Voir aussi

RX_CONTEXT

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock