Fornecendo notificação de evento
O serviço WIA notifica um minidriver WIA de um evento de dispositivo com suporte chamando o método IWiaMiniDrv::d rvNotifyPnpEvent . Nesse método, o minidriver implementa a funcionalidade específica do dispositivo necessária para responder ao evento. O serviço WIA chama o método IWiaMiniDrv::d rvNotifyPnpEvent somente para um evento que o minidriver indicou que o dispositivo pode dar suporte no método IWiaMiniDrv::d rvGetCapabilities .
O minidriver inicia um evento por meio do mecanismo de evento STI ou usando wiasQueueEvent para adicionar uma notificação de evento desse dispositivo à fila de eventos.
Comportamento assíncrono: gerenciamento de energia e cancelamento de E/S
Na maioria dos casos, o serviço WIA garante que apenas uma chamada seja feita para o driver de cada vez. No entanto, alguns métodos são inerentemente assíncronos e reentrantes por natureza. Um bom exemplo disso é o método IWiaMiniDrv::d rvNotifyPnpEvent .
O serviço WIA usa esse método para notificar o driver de eventos que podem exigir ação imediata. Por exemplo, quando o serviço WIA recebe um evento Plug and Play indicando que o dispositivo foi removido, ele informa o driver imediatamente. Outros exemplos incluem eventos de gerenciamento de energia e solicitações de cancelamento de E/S de aplicativos.
Para obter uma implementação de exemplo do método IWiaMiniDrv::d rvNotifyPnpEvent , ilustrando como ele deve responder a vários tipos de eventos, consulte Adicionando suporte a eventos de interrupção.