Partager via


IRP_MJ_CLEANUP

Les pilotes qui gèrent des informations de contexte spécifiques au processus doivent gérer les demandes de nettoyage dans les routines DispatchCleanup .

Date d’envoi

La réception de cette demande indique que le dernier handle d’un objet de fichier associé à l’objet d’appareil cible a été fermé (mais, en raison de demandes d’E/S en attente, n’a peut-être pas été libéré).

Paramètres d’entrée

Aucun

Paramètres de sortie

None

Opération

Cette IRP est envoyée dans le contexte du processus qui a fermé le handle de l’objet fichier. Par conséquent, le pilote doit libérer des ressources spécifiques au processus, telles que la mémoire utilisateur, que le pilote a précédemment verrouillées ou mappées.

Si les objets d’appareil du pilote ont été configurés comme exclusifs, afin qu’un seul thread puisse utiliser l’appareil à la fois, le pilote doit effectuer chaque IRP actuellement mis en file d’attente vers l’objet d’appareil cible et définir STATUS_CANCELLED dans le bloc d’E/S status de chaque IRP.

Sinon, le pilote doit annuler et terminer uniquement les IRP actuellement mis en file d’attente qui sont associés au handle d’objet de fichier qui est libéré. (Un pointeur vers l’objet file se trouve dans le membre FileObject du IO_STACK_LOCATION du pilote de l’IRP.) Après avoir annulé ces IRPs mis en file d’attente, le pilote termine l’IRP de nettoyage et définit STATUS_SUCCESS dans son bloc d’E/S status.

Pour plus d’informations sur la gestion de cette demande, consultez DispatchCleanup Routines.

Spécifications

En-tête

Wdm.h (inclure Wdm.h, Ntddk.h ou Ntifs.h)

Voir aussi

DispatchCleanup

IO_STACK_LOCATION

IRP_MJ_CLOSE