Partilhar via


Usando a notificação personalizada PnP

Um driver pode usar o mecanismo de notificação de alteração de dispositivo de destino para ser notificado de eventos personalizados em um dispositivo.

O programador que define o evento personalizado deve fazer o seguinte:

  1. Defina um novo GUID para o evento personalizado.

    Gere o GUID com Uuidgen ou Guidgen (que estão incluídos no SDK do Microsoft Windows). Publique o GUID em um arquivo de cabeçalho e documentação apropriados.

  2. Escreva código para disparar o evento personalizado.

    No modo kernel, um driver chama IoReportTargetDeviceChange com o GUID personalizado e um ponteiro para o PDO do dispositivo. Os eventos personalizados só podem ser acionados a partir do modo kernel.

Um desenvolvedor de drivers usa notificação personalizada com um procedimento como o seguinte:

  1. O driver (ou aplicativo) se registra para notificação do evento personalizado.

    No modo kernel, um driver chama IoRegisterPlugPlayNotification e se registra para um EventCategoryTargetDeviceChange no dispositivo.

    No modo de usuário, um aplicativo se registra usando RegisterDeviceNotification. Consulte o SDK do Windows para obter mais informações.

  2. Um componente de modo kernel aciona o evento personalizado.

  3. O gerenciador PnP chama rotinas de notificação registradas no dispositivo.

    O gestor PnP chama as rotinas de callback do modo de utilizador registadas e, em seguida, chama as rotinas de callback do modo núcleo.

  4. Quando a notificação no modo de usuário é concluída, a(s) rotina(s) de retorno de chamada de notificação do driver do modo kernel respondem ao evento personalizado.

    Consulte Diretrizes para escrever rotinas de retorno de chamada de notificação PnP para obter diretrizes gerais para rotinas de retorno de chamada de notificação. Além dessas diretrizes, uma rotina de retorno de chamada de notificação personalizada não deve abrir um identificador para um dispositivo no interior do thread da rotina de retorno de chamada.