Partager via


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)

Voir aussi

DispatchClose

IRP_MJ_CLEANUP

IRP_MJ_CREATE