Compartilhar via


Power-Down e sequência de remoção para um motorista de ônibus

A figura a seguir mostra a ordem na qual a estrutura chama as funções de retorno de chamada de evento de um motorista de barramento KMDF ao desligar e remover um dispositivo conectado ao barramento. A sequência começa na parte superior da figura com um dispositivo operacional que está no estado de energia em funcionamento (D0):

Fluxograma ilustrando a sequência de desligamento e remoção de um driver de barramento KMDF, começando com um dispositivo operacional no estado de energia em funcionamento (D0).

A estrutura não exclui o PDO até que o dispositivo seja fisicamente removido do sistema. Por exemplo, se um usuário desabilitar o dispositivo em Gerenciador de Dispositivos ou o interromper no utilitário Remover Hardware com segurança, mas não remover fisicamente o dispositivo, a estrutura manterá o PDO. Se o dispositivo for habilitado posteriormente, a estrutura usará o mesmo PDO e iniciará a sequência de inicialização chamando o retorno de chamada EvtDevicePrepareHardware , conforme mostrado em Sequência de Power-Up para um objeto de dispositivo físico.

Observação: normalmente, a estrutura chama a função de retorno de chamada EvtDeviceReleaseHardware de um driver de ônibus depois de chamar a função EvtDeviceReleaseHardware para todos os dispositivos filho que o driver enumera. No caso do pai encontrar uma falha de ligar ou desligar o dispositivo, a estrutura pode chamar o EvtDeviceReleaseHardware do driver antes de chamar as funções EvtDeviceReleaseHardware para todos os dispositivos filho. Considere chamar WdfDeviceInitSetReleaseHardwareOrderOnFailure para garantir que a estrutura chame o retorno de chamada EvtDeviceReleaseHardware do driver de ônibus somente depois que todos os dispositivos filho forem removidos.