Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le système d’exploitation décharge un pilote lorsque le pilote est remplacé ou lorsque tous les périphériques que le pilote gère ont été supprimés. Le gestionnaire PnP appelle la routine de déchargement d’un pilote PnP si le pilote n’a plus d’objets de périphérique après avoir traité une demande d'IRP_MN_REMOVE_DEVICE.
Au début de la séquence de déchargement, le gestionnaire d’E/S ou le gestionnaire PnP marque l’objet pilote et ses objets de périphérique comme « Décharger en attente ». Une fois qu’un pilote a été marqué comme « en attente de déchargement », aucun pilote supplémentaire ne peut être attaché à ce pilote, ni aucune référence supplémentaire ne peut être faite aux objets de périphérique du pilote. Le pilote peut effectuer des IRP en attente, mais le système n’envoie aucune nouvelle IRP au pilote.
Le gestionnaire d’E/S appelle la routine de déchargement d’un pilote quand tous les éléments suivants sont vrais :
Aucune référence n’est conservée à l’un des objets de périphérique que le pilote a créés. En d'autres termes, aucun fichier associé à l'appareil sous-jacent ne peut être ouvert, et aucun IRP ne peut être en attente pour les objets périphériques du pilote.
Aucun autre pilote n’est attaché à ce pilote.
Le pilote a appelé IoUnregisterPlugPlayNotification pour annuler l’inscription de toutes les notifications PnP pour lesquelles il a précédemment inscrit.
Notez que la routine de déchargement n’est pas appelée si la routine DriverEntry d’un pilote retourne un état d’échec. Dans ce cas, le gestionnaire d’E/S libère simplement l’espace mémoire pris par le pilote.
Ni le gestionnaire PnP ni le gestionnaire d’E/S n’appellent les routines de déchargement au moment de l’arrêt du système. Un pilote qui doit effectuer le traitement de l’arrêt doit inscrire une routine DispatchShutdown .