Partager via


Fonction IofCompleteRequest (wdm.h)

La macro IoCompleteRequest indique que l’appelant a terminé tout le traitement d’une demande d’E/S donnée et qu’il retourne l’IRP donné au gestionnaire d’E/S.

IoCompleteRequest encapsule IofCompleteRequest.

Syntaxe

void IofCompleteRequest(
  PIRP  Irp,
  CCHAR PriorityBoost
);

Paramètres

Irp

Pointeur vers l’IRP à terminer.

PriorityBoost

Spécifie une constante CCHAR définie par le système par laquelle incrémenter la priorité d’exécution du thread d’origine qui a demandé l’opération. Cette valeur est IO_NO_INCREMENT si le thread d’origine a demandé une opération que le pilote peut effectuer rapidement (de sorte que le thread demandeur n’est pas indemnisé pour son attente supposée d’E/S terminée) ou si l’IRP est terminé avec une erreur. Sinon, l’ensemble des constantes PriorityBoost est spécifique au type d’appareil. Pour connaître ces constantes, consultez Ntddk.h ou Wdm.h.

Valeur de retour

None

Remarques

Lorsqu’un pilote a terminé tout le traitement d’un IRP donné, il appelle IoCompleteRequest. Le gestionnaire d’E/S vérifie l’IRP pour déterminer si des pilotes de niveau supérieur ont configuré une routine IoCompletion pour l’IRP. Si c’est le cas, chaque routine IoCompletion est appelée, à son tour, jusqu’à ce que chaque pilote en couches de la chaîne ait terminé l’IRP.

Lorsque tous les pilotes ont effectué une IRP donnée, le gestionnaire d’E/S retourne status au demandeur d’origine de l’opération. Notez qu’un pilote de niveau supérieur qui configure un IRP créé par un pilote doit fournir une routine IoCompletion pour libérer l’IRP qu’elle a créée.

N’appelez jamais IoCompleteRequest en tenant un verrou de rotation. La tentative d’effectuer une IRP tout en tenant un verrou de rotation peut entraîner des interblocages.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI CompleteRequest, CompleteRequestStatusCheck, DoubleCompletion(wdm), HwStorPortProhibitedDDDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm)

Voir aussi

IoSetCompletionRoutine