Routine de déchargement du pilote non PnP
Les pilotes antérieurs et les pilotes de système de fichiers de haut niveau, qui ne gèrent pas les demandes de suppression de périphérique PnP, doivent libérer des ressources, supprimer des objets d’appareil et se détacher de la pile d’appareils dans leurs routines de déchargement .
S’il ne l’a pas déjà fait, la première chose qu’un pilote de périphérique hérité doit faire dans sa routine de déchargement est de désactiver les interruptions de l’appareil. Sinon, son ISR peut être appelé pour gérer une interruption d’appareil pendant que la routine de déchargement libère des ressources dans l’extension de l’appareil dont l’ISR a besoin pour gérer l’interruption. Même si son ISR s’exécute correctement dans ces circonstances, la routine DpcForIsr ou CustomDpc que l’ISR met en file d’attente, et éventuellement d’autres routines de pilotes qui s’exécutent à IRQL >= DISPATCH_LEVEL, s’exécutent avant que la routine de déchargement reprenne le contrôle, ce qui augmente la probabilité que la routine de déchargement ait supprimé une ressource référencée par une autre routine de pilote. Pour plus d’informations, consultez Gestion des priorités matérielles .
Après avoir désactivé les interruptions, le système de fichiers et les pilotes hérités doivent libérer des ressources et des objets. Pour plus d’informations, consultez les deux sections suivantes :