Entladeroutine eines Akku-Miniklassentreibers
Die Deload-Routine für einen Akku-Miniklassentreiber stellt sicher, dass alle Geräte des Treibers entfernt wurden, und gibt alle Ressourcen frei, die der Miniklassentreiber zugewiesen hat.
Die Entladen-Routine sollte zuerst überprüfen, ob alle zugehörigen Geräte entfernt wurden, und wenn nicht, gehen Sie für jedes verbleibende Gerät wie folgt vor:
Rufen Sie BatteryClassUnload auf, um den Klassentreiber darüber zu informieren, dass der Miniklassentreiber das Gerät entladen wird.
Deaktivieren Sie alle Gerätebenachrichtigungen von niedrigeren Treibern, z. B. dem ACPI-Treiber, mithilfe der Schnittstelle dieses Treibers.
Löschen Sie das Geräteobjekt für das Gerät, indem Sie IoDeleteDevice wie folgt aufrufen:
IoDeleteDevice (NewBatt->DeviceObject);
Nachdem alle Geräte des Miniklassentreibers entladen wurden, sollte die Entladen-Routine alle Ressourcen freigeben, die vom Miniklassentreiber zugewiesen wurden.
Die Deload-Routine des Miniklassentreibers kann jederzeit aufgerufen werden, nachdem alle Geräte des Treibers entfernt wurden. Der PnP-Manager ruft die Unload-Routine im Kontext eines Systemthreads unter IRQL = PASSIVE_LEVEL auf.