Partager via


Fonction IoMakeAssociatedIrp (ntddk.h)

Cette routine est réservée pour une utilisation par les systèmes de fichiers et les pilotes de filtre de système de fichiers. La routine IoMakeAssociatedIrp alloue et initialise un IRP à associer à un IRP maître envoyé à un pilote de niveau supérieur, ce qui permet à l’appelant de fractionner la requête d’origine et d’envoyer les irPs associés sur des pilotes de niveau inférieur.

Syntaxe

PIRP IoMakeAssociatedIrp(
  [in] PIRP  Irp,
  [in] CCHAR StackSize
);

Paramètres

[in] Irp

Pointeur vers l’IRP maître qui a été entré dans la routine Dispatch d’un pilote de niveau supérieur.

[in] StackSize

Spécifie le nombre d’emplacements de pile à allouer pour l’IRP associé. La valeur doit être au moins égale à la StackSize de l’objet périphérique du pilote inférieur suivant, mais l’IRP associé peut avoir un emplacement de pile supplémentaire pour l’appelant.

Valeur de retour

IoMakeAssociatedIrp retourne un pointeur vers l’IRP associé ou retourne un pointeur NULL si un IRP ne peut pas être alloué.

Remarques

Seul un pilote de niveau supérieur peut appeler cette routine.

Le gestionnaire d’E/S termine automatiquement l’IRP maître lorsque les pilotes inférieurs ont terminé toutes les IRP associées tant que l’appelant n’a pas défini sa routine IoCompletion dans un IRP associé et retourné STATUS_MORE_PROCESSING_REQUIRED de sa routine IoCompletion routine. Dans ces circonstances, l’appelant doit compléter explicitement le protocole IRP principal lorsque ce pilote a déterminé que toutes les IRP associées ont été terminées.

Seul le protocole IRP principal est associé à un thread ; les adresses IP virtuelles associées ne sont pas. Pour cette raison, le gestionnaire d’E/S ne peut pas appeler annuler routines pour les IRPs associés lorsqu’un thread se ferme. Lorsque le thread de l’IRP maître se termine, le gestionnaire d’E/S appelle la routine d'Annuler de l’IRP maître. La routine Annuler est responsable du suivi de tous les IRP associés et de l’appel IoCancelIrp pour les annuler.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Voir aussi

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine