Share via


Fonction RxCeAllocateIrpWithMDL (rxce.h)

RxCeAllocateIrpWithMDL alloue un IRP et l’associe à une liste de descripteurs mémoire existante.

Syntaxe

PIRP RxCeAllocateIrpWithMDL(
  [in] IN CCHAR   StackSize,
  [in] IN BOOLEAN ChargeQuota,
  [in] IN PMDL    Buffer
);

Paramètres

[in] StackSize

Taille de pile à allouer pour l’IRP.

[in] ChargeQuota

Ce paramètre doit être défini sur FALSE par les pilotes intermédiaires. Cela peut être défini sur TRUE uniquement par les pilotes de niveau supérieur qui sont appelés dans le contexte du thread à l’origine de la demande d’E/S pour laquelle le pilote alloue un autre IRP.

[in] Buffer

Pointeur vers la mémoire tampon qui contient la liste de descripteurs mémoire à associer à cette IRP.

Valeur retournée

RxCeAllocateIrpWithMDL retourne un pointeur vers l’IRP en cas de réussite ou un pointeur NULL en cas d’erreur.

Remarques

L’objectif de RxCeAllocateIrpWithMDL est de faciliter le débogage des IRP qui sont émis pour d’autres composants, puis se bloquent. Les irPs émis à l’aide de RxCeAllocateIrpWithMDL sont mis en file d’attente vers une liste globale des IRP gérés par RDBSS. Ainsi, lorsqu’un RX_CONTEXT attend une fin d’envoi, il est possible de parcourir la liste globale pour trouver l’IRP en attente dans le transport.

Une IRP allouée avec une liste de descripteurs de mémoire associée allouée avec RxCeAllocateIrpWithMDL doit être libérée lorsque l’IRP est terminée à l’aide de RxCeFreeIrp.

IoAllocateIrp initialise automatiquement les membres de l’IRP et insère l’IRP dans une liste globale des IRP gérés par RDBSS. Si la mémoire de la MDL à associer à l’IRP ne peut pas être allouée, l’IRP qui a été créé est libéré et RxCeAllocateIrpWithMDL retourne un pointeur NULL indiquant un échec.

Configuration requise

Condition requise Valeur
Client minimal pris en charge La routine RxCeAllocateIrpWithMDL est disponible uniquement sur Windows XP.
Plateforme cible Desktop (Expérience utilisateur)
En-tête rxce.h (inclure Rxce.h)
IRQL <= APC_LEVEL

Voir aussi

MDL

RxCeFreeIrp