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 libère et supprime la structure de 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
None
Remarques
RxDereferenceAndDeleteRxContext_Real est appelé par des routines autres que RxCompleteRequest lors des 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 déréférence.
Si le membre ReferenceCount 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érencementé (décrémenté) par la routine RxDereferenceAndDeleteRxContext_Real , RxDereferenceAndDeleteRxContext_Real oblige le système à ASSERT 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 incluent les éléments suivants :
- Si le membre AcquireReleaseFcbTrackerX est 0, RxDereferenceAndDeleteRxContext_Real provoque l’assertion du système sur les builds vérifiées.
- Si le membre NumberOfActiveContexts de la structure de RDBSS_DEVICE_OBJECT associée pointait vers RxContext->RxDeviceObject n’est pas zéro après avoir été déréférencé (décrémenté) et que le membre StartStopContext.pStopContext de la structure de RDBSS_DEVICE_OBJECT associée n’est pas NULL, RxDereferenceAndDeleteRxContext_Real signalera l’événement SyncEvent sur la structure RX_CONTEXT dans le membre StartStopContext.pStopContext .
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxcontx.h (inclure Rxprocs.h rxcontx.h) |
IRQL | <= APC_LEVEL |
Voir aussi
RxResumeBlockedOperations_Serially