Partager via


RxPrepareContextForReuse, fonction (rxcontx.h)

RxPrepareContextForReuse prépare une structure de données RX_CONTEXT à réutiliser en réinitialisant toutes les allocations et acquisitions spécifiques à l’opération effectuées (le ReferenceCount membre de la structure RX_CONTEXT est défini sur zéro). Les paramètres obtenus à partir de l’IRP ne sont pas modifiés.

Syntaxe

void RxPrepareContextForReuse(
  [in, out] IN OUT PRX_CONTEXT RxContext
);

Paramètres

[in, out] RxContext

Pointeur vers la structure RX_CONTEXT.

Valeur de retour

Aucun

Remarques

La routine RxPrepareContextForReuse vérifie que plusieurs membres spécifiques à l’opération dans la structure RX_CONTEXT sont NULL avant de définir le ReferenceCount membre sur zéro. Ces tests spécifiques à l’opération qui doivent être remplis sont les suivants :

  • Si le membre MajorFunction de l’IRP associé est IRP_MJ_CREATE, le membre Create.CanonicalNameBuffer doit être NULL.
  • Si le membre MajorFunction de l’IRP associé est IRP_MJ_READ ou IRP_MJ_WRITE, les membres RxContextSerializationQLinks.Flink et RxContextSerializationQLinks.Blink doivent être NULL.
Si l’une des conditions ci-dessus n’est pas remplie, RxPrepareContextForReuse entraîne l’assertion du système sur les builds vérifiées.

La routine RxPrepareContextForReuse serait normalement utilisée uniquement par les pilotes de mini-redirecteur réseau qui réinitialisent directement les structures RX_CONTEXT.

Exigences

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

Voir aussi

RxCompleteRequest

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock