Partager via


IofCompleteRequest, fonction (wdm.h)

La macro IoCompleteRequest indique que l’appelant a terminé tout le traitement d’une demande d’E/S donnée et 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 (par conséquent, le thread demandeur n’est pas compensé par son attente supposée pour que les E/S soient terminées) ou si l’IRP est terminé avec une erreur. Dans le cas contraire, l’ensemble de constantes PriorityBoost est spécifique au type d’appareil. Consultez Ntddk.h ou Wdm.h pour obtenir ces constantes.

Valeur de retour

Aucun

Remarques

Lorsqu’un pilote a terminé tout le traitement d’un IRP donné, il appelle IoCompleteRequest. Le gestionnaire d’E/S vérifie si les pilotes de niveau supérieur ont configuré une routine IoCompletion routine pour l’IRP. Dans ce cas, chaque IoCompletion routine 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 terminé un IRP donné, le gestionnaire d’E/S retourne l’état 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’il a créé.

N’appelez jamais IoCompleteRequest tout en maintenant un verrou de rotation. La tentative d’exécution d’un IRP lors de la conservation d’un verrou de rotation peut entraîner des interblocages.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’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), HwStorPortProhibitedDDIs(storport), IoAllocateComplete, IoBuildFsdComplete, IoSetCompletionExCompleteIrp, IrpProcessingComplete(wdm), MarkIrpPending, PendedCompletedRequest(wdm), PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx(wdm), PnpIrpCompletion(wdm), SpinLockSafe(storport), SpinLockSafe(wdm), WmiComplete(wdm)

Voir aussi

IoSetCompletionRoutine