Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O sistema operacional descarrega um driver quando o driver está sendo substituído ou quando todos os dispositivos que o driver atende foram removidos. O gerenciador PnP chama a rotina Unload de um driver PnP se o driver não tiver mais objetos de dispositivo após lidar com uma solicitação IRP_MN_REMOVE_DEVICE.
No início da sequência de descarregamento, o gerenciador de E/S ou o gerenciador de PnP marca o objeto controlador e seus objetos de dispositivo como "Pendente de Descarregamento". Depois que um driver tiver sido marcado como "Descarregar Pendente", nenhum driver adicional poderá se anexar a esse driver, nem poderão ser feitas referências adicionais aos objetos do dispositivo do driver. O controlador pode concluir IRPs pendentes, mas o sistema não enviará novos IRPs para o controlador.
O gerenciador de E/S chama a rotina Unload de um driver quando todas as seguintes condições são verdadeiras:
Nenhuma referência permanece para nenhum dos objetos de dispositivo que o driver criou. Em outras palavras, nenhum arquivo associado ao dispositivo essencial pode ser aberto, nem devem existir IRPs pendentes para nenhum dos objetos de dispositivo do driver.
Nenhum outro controlador permanece anexado a este driver.
O driver chamou IoUnregisterPlugPlayNotification para desregistrar todas as notificações PnP para as quais ele registrou anteriormente.
Observe que a rotina de descarregamento não será chamada se a rotina DriverEntry de um driver retornar um status de falha. Nesse caso, o gerente de E/S simplesmente libera o espaço de memória gasto pelo driver.
Nem o gerente de PnP nem o gerente de E/S chamam rotinas Unload no momento do desligamento do sistema. Um driver que deve executar o processamento de desligamento deve registrar uma rotina DispatchShutdown .