IRP_MJ_CLOSE
Chaque pilote doit gérer les demandes de fermeture dans une routine DispatchClose , à l’exception possible d’un pilote dont le périphérique ne peut pas être désactivé ou supprimé de l’ordinateur sans mettre le système hors service. Un pilote de disque dont le périphérique contient le fichier de page système est un exemple de ce pilote. Notez que le pilote d’un tel appareil ne peut pas non plus être déchargé dynamiquement.
Date d’envoi
La réception de cette demande indique que le dernier handle de l’objet fichier associé à l’objet d’appareil cible a été fermé et libéré. Toutes les demandes d’E/S en suspens ont été effectuées ou annulées.
Paramètres d’entrée
Aucun
Paramètres de sortie
None
Opération
De nombreux pilotes intermédiaires et d’appareils définissent simplement STATUS_SUCCESS dans le bloc de status d’E/S de l’IRP et terminent la demande de fermeture. Toutefois, ce qu’un pilote donné fait à la réception d’une demande de fermeture dépend de la conception du pilote. En général, un pilote doit annuler toutes les actions qu’il effectue à la réception de la demande de IRP_MJ_CREATE . Les pilotes de périphérique dont les objets de périphérique sont exclusifs, tels qu’un pilote série, peuvent également réinitialiser le matériel à la réception d’une demande de fermeture.
La demande IRP_MJ_CLOSE n’est pas nécessairement envoyée dans le contexte du processus qui a fermé le handle d’objet de fichier. Si 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, il doit le faire en réponse à une demande de IRP_MJ_CLEANUP .
La demande IRP_MJ_CLOSE sera toujours envoyée à PASSIVE_LEVEL.
Spécifications
En-tête |
Wdm.h (inclure Wdm.h, Ntddk.h ou Ntifs.h) |