Entladeroutine des Nicht-PnP-Treibers
Frühere Treiber und Allgemeine Dateisystemtreiber, die keine Anforderungen zum Entfernen von PnP-Geräten verarbeiten, müssen Ressourcen freigeben, Geräteobjekte löschen und sich in ihren Entladeroutinen vom Gerätestapel trennen.
Wenn dies noch nicht geschehen ist, sollte ein Legacy-Gerätetreiber in seiner Entladeroutine zunächst Interrupts vom Gerät deaktivieren. Andernfalls kann der ISR aufgerufen werden, um einen Geräteunterbrechung zu behandeln, während die Entladen-Routine Ressourcen in der Geräteerweiterung freigibt, die der ISR benötigt, um den Interrupt zu behandeln. Selbst wenn die ISR unter diesen Umständen erfolgreich ausgeführt wird, werden die DpcForIsr - oder CustomDpc-Routine , die von den ISR-Warteschlangen ausgeführt wird, und möglicherweise andere Treiberroutinen, die unter IRQL >= DISPATCH_LEVEL ausgeführt werden, ausgeführt, bevor die Entladen-Routine wieder die Kontrolle erhält, wodurch die Wahrscheinlichkeit erhöht wird, dass die Entladungsroutine eine Ressource gelöscht hat, auf die eine andere Treiberroutine verweist. Weitere Informationen finden Sie unter Verwalten von Hardwareprioritäten .
Nach dem Deaktivieren von Interrupts müssen Dateisystem- und Legacytreiber Ressourcen und Objekte freigeben. Ausführliche Informationen finden Sie in den folgenden beiden Abschnitten: