RxCeAllocateIrpWithMDL, fonction (rxce.h)
RxCeAllocateIrpWithMDL alloue un IRP et l’associe à une liste de descripteurs de 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 qui provient 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 de mémoire à associer à cet IRP.
Valeur de retour
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 d’autoriser le débogage plus facile des fournisseurs d’intégration émis à d’autres composants, puis à bloquer. Les fournisseurs d’intégration émis à l’aide de RxCeAllocateIrpWithMDL sont mis en file d’attente vers une liste globale des IRPs conservées par RDBSS. Par conséquent, 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.
Un IRP alloué avec une liste de descripteurs de mémoire associée allouée avec RxCeAllocateIrpWithMDL doit être libéré lorsque l’IRP est terminé à l’aide de RxCeFreeIrp.
IoAllocateIrp initialise automatiquement les membres de l’IRP et insère l’IRP dans une liste globale d’IRPs conservée par RDBSS. Si la mémoire du MDL à associer à l’IRP ne peut pas être allouée, l’IRP créé est libéré et RxCeAllocateIrpWithMD L retourne un pointeur NULL NULL indiquant l’échec.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | La routine RxCeAllocateIrpWithMDL est disponible uniquement sur Windows XP. |
plateforme cible | Bureau |
d’en-tête | rxce.h (include Rxce.h) |
IRQL | <= APC_LEVEL |