Freigeben über


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:

  1. Rufen Sie BatteryClassUnload auf, um den Klassentreiber darüber zu informieren, dass der Miniklassentreiber das Gerät entladen wird.

  2. Deaktivieren Sie alle Gerätebenachrichtigungen von niedrigeren Treibern, z. B. dem ACPI-Treiber, mithilfe der Schnittstelle dieses Treibers.

  3. 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.