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) |