Partilhar via


Rotina de descarregamento do driver não PnP

Drivers anteriores e drivers de sistema de arquivos de alto nível, que não lidam com solicitações de remoção de dispositivo PnP, devem liberar recursos, excluir objetos de dispositivo e desanexar da pilha de dispositivos em suas rotinas de descarregamento .

Se ele ainda não fez isso, a primeira coisa que um driver de dispositivo herdado deve fazer em sua rotina de descarregamento é desabilitar interrupções do dispositivo. Caso contrário, seu ISR pode ser chamado para lidar com uma interrupção de dispositivo enquanto a rotina de descarregamento está liberando recursos na extensão do 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 executadas em IRQL >= DISPATCH_LEVEL, será executada antes que a rotina de descarregamento recupere o controle, aumentando assim a probabilidade de que a rotina unload tenha excluído um recurso que outra rotina de driver referencia. Consulte Gerenciando prioridades de hardware para obter mais informações.

Depois de desabilitar 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:

Liberando recursos de Driver-Allocated

Liberando objetos de dispositivo e controlador