电池微型类驱动程序的 Unload 例程

电池微型类驱动程序的 Unload 例程可确保删除所有驱动程序的设备,并释放微型类驱动程序分配的任何资源。

Unload 例程应首先检查,以确保其所有设备都已删除,如果未删除,则对每个剩余设备执行以下操作:

  1. 调用 BatteryClassUnload,以通知类驱动程序微型类驱动程序正在卸载设备。

  2. 使用该驱动程序的接口禁用来自较低驱动程序(如 ACPI 驱动程序)的任何设备通知。

  3. 通过调用 IoDeleteDevice,删除设备的设备对象,具体如下:

        IoDeleteDevice (NewBatt->DeviceObject);
    

卸载所有微型类驱动程序的设备后,Unload 例程应释放微型类驱动程序分配的任何资源。

删除所有驱动程序的设备后,可以随时调用微型类驱动程序的 Unload 例程。 PnP 管理器在 IRQL = PASSIVE_LEVEL 的系统线程上下文中调用 Unload 例程。