Partilhar via


Manipulando um evento de GUID_TARGET_DEVICE_REMOVE_COMPLETE

Antes que o gerenciador PnP envie um IRP IRP_MN_REMOVE_DEVICE para os drivers de um dispositivo, o gerenciador PnP chama quaisquer rotinas de retorno de chamada de notificação no modo kernel registradas para EventCategoryTargetDeviceChange no dispositivo. O gerenciador PnP especifica uma NotificationStructure. Evento de GUID_TARGET_DEVICE_REMOVE_COMPLETE.

Ao lidar com um evento GUID_TARGET_DEVICE_REMOVE_COMPLETE, uma rotina de retorno de chamada de notificação deve:

  • Remova o registro de notificação no dispositivo.

    O dispositivo foi removido, portanto, o driver chama IoUnregisterPlugPlayNotification para remover o registro de notificação.

    O dispositivo ainda pode estar fisicamente presente no computador, mas todos os objetos do dispositivo foram excluídos e o dispositivo não está disponível para uso.

  • Execute o processamento de remoção surpresa se o driver não recebeu uma notificação anterior de remoção de consulta.

    Se um dispositivo for removido de surpresa, o gerenciador PnP enviará aos drivers registrados uma notificação de remoção completa sem uma notificação anterior de remoção de consulta. Nesse caso, um driver precisa executar qualquer limpeza necessária, como fechar todos os identificadores para o dispositivo e remover quaisquer referências pendentes ao objeto de arquivo.