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 |