电池微型类驱动程序的 Unload 例程
电池微型类驱动程序的 Unload 例程可确保删除所有驱动程序的设备,并释放微型类驱动程序分配的任何资源。
Unload 例程应首先检查,以确保其所有设备都已删除,如果未删除,则对每个剩余设备执行以下操作:
调用 BatteryClassUnload,以通知类驱动程序微型类驱动程序正在卸载设备。
使用该驱动程序的接口禁用来自较低驱动程序(如 ACPI 驱动程序)的任何设备通知。
通过调用 IoDeleteDevice,删除设备的设备对象,具体如下:
IoDeleteDevice (NewBatt->DeviceObject);
卸载所有微型类驱动程序的设备后,Unload 例程应释放微型类驱动程序分配的任何资源。
删除所有驱动程序的设备后,可以随时调用微型类驱动程序的 Unload 例程。 PnP 管理器在 IRQL = PASSIVE_LEVEL 的系统线程上下文中调用 Unload 例程。