Compartilhar via


Registrando-se para notificação de alteração de dispositivo de destino

Um driver registra para notificação de eventos de alteração de dispositivo de destino PnP chamando IoRegisterPlugPlayNotification.

As seguintes informações se aplicam à chamada dessa rotina para notificação de alteração de dispositivo de destino:

  • Especifique um EventCategory de EventCategoryTargetDeviceChange.

  • EventCategoryData deve apontar para o objeto de arquivo para o dispositivo no qual a notificação é solicitada.

    Se a rotina de retorno de chamada do driver exigir acesso ao objeto de arquivo, o driver deverá fazer uma referência no objeto de arquivo antes de chamar IoRegisterPlugPlayNotification.

    Se a rotina de retorno de chamada do driver não exigir acesso ao objeto de arquivo, o driver não precisará fazer referência ao objeto .

    Depois que o objeto de arquivo é fechado, o driver continua a receber notificações para o dispositivo até que o driver remova seu registro de notificação. Esse design permite que o driver receba notificação de eventos de GUID_TARGET_DEVICE_REMOVE_CANCELLED, por exemplo.

  • Especifique um Contexto definido pelo driver que o gerenciador PnP passará para a rotina de retorno de chamada.

    Um driver pode usar o parâmetro Context para manter informações sobre o estado atual do objeto de arquivo (por exemplo, ele foi fechado/excluído).

    Um driver também pode usar o Contexto para armazenar o caminho usado para abrir originalmente o dispositivo. Um driver pode usar esse caminho para reabrir o dispositivo após uma operação de remoção cancelada. (Consulte Manipulando um evento de GUID_TARGET_DEVICE_REMOVE_CANCELLED para obter mais informações.)

Um driver remove um registro de notificação chamando IoUnregisterPlugPlayNotification com NotificationEntry retornado por IoRegisterPlugPlayNotification. Se o driver tiver feito uma referência no objeto de arquivo quando ele se registrou para notificação e essa referência ainda estiver pendente, o driver deverá liberar a referência depois de remover o registro.