Поделиться через


Подпрограмма выгрузки драйвера миникласса батареи

Подпрограмма Unload для драйвера мини-класса батареи гарантирует, что все устройства драйвера были удалены, и освобождает все ресурсы, выделенные драйвером мини-класса.

Подпрограмма Unload должна сначала проверка, чтобы убедиться, что все ее устройства удалены, и в противном случае выполните следующие действия для каждого оставшегося устройства:

  1. Вызовите BatteryClassUnload , чтобы сообщить драйверу класса о том, что драйвер миникласса выгружается устройство.

  2. Отключите все уведомления устройства от более низких драйверов, таких как драйвер ACPI, с помощью интерфейса этого драйвера.

  3. Удалите объект устройства, вызвав IoDeleteDevice следующим образом:

        IoDeleteDevice (NewBatt->DeviceObject);
    

После выгрузки всех устройств драйвера мини-класса подпрограмма Unload должна освободить все ресурсы, выделенные драйвером мини-класса.

Подпрограмму выгрузки драйвера мини-класса можно вызвать в любое время после удаления всех устройств драйвера. Диспетчер PnP вызывает подпрограмму Unload в контексте системного потока в IRQL = PASSIVE_LEVEL.