Partilhar via


Rotina de descarregamento do controlador não-PnP

Drivers mais antigos e drivers de sistema de ficheiros de alto nível, que não lidam com solicitações de remoção de dispositivos PnP, devem liberar recursos, excluir objetos de dispositivo e desvincular-se da pilha de dispositivos nas suas rotinas de unload.

Se ainda não tiver feito isso, a primeira coisa que um driver de dispositivo herdado deve fazer na sua rotina Descarregar é desativar as interrupções do dispositivo. Caso contrário, seu ISR pode ser chamado para lidar com uma interrupção de dispositivo enquanto a rotina Unload está liberando recursos na extensão de dispositivo que o ISR precisa para lidar com a interrupção. Mesmo que seu ISR seja executado com êxito nessas circunstâncias, a rotina DpcForIsr ou CustomDpc que o ISR enfileira, e possivelmente outras rotinas de driver que são executadas em IRQL >= DISPATCH_LEVEL, serão executadas antes que a rotina Unload recupere o controle, aumentando assim a probabilidade de que a rotina Unload tenha excluído um recurso que outra rotina de driver refere. Consulte Gerenciando prioridades de hardware para obter mais informações.

Depois de desativar as interrupções, o sistema de arquivos e os drivers herdados devem liberar recursos e objetos. Para obter detalhes, consulte as duas seções a seguir:

Libertar recursos de Driver-Allocated

Liberando objetos de dispositivo e controlador