Comandos de evento
Os comandos nesta seção são usados pelo microdriver para suporte a eventos de dispositivo.
CMD_GET_INTERRUPT_EVENT
Chamado pelo Driver de Flatbed wia em um thread separado para monitorar a status de eventos de botão que usam interrupções do dispositivo (ou seja, para dispositivos USB que relatam eventos por meio do pipe de interrupção). Se o dispositivo der suporte apenas à sondagem, esse comando não precisará ser implementado e E_NOTIMPL deverá ser retornado.
Dois identificadores de evento são passados para o microdriver. O membro lVal da estrutura VAL contém um identificador de evento que deve ser sinalizado pelo microdriver usando a função SetEvent quando ocorre um evento de botão. O membro do identificador da estrutura VAL contém um identificador de evento que será sinalizado pelo Driver de Flatbed wia quando o driver estiver sendo descarregado ou desligado.
O membro pGuid da estrutura VAL deve ser definido para apontar para o GUID do botão que foi enviado por push. Se nenhum botão tiver sido pressionado, ele deverá ser definido como GUID_NULL.
CMD_STI_GETSTATUS
Chamado pelo WiA Flatbed Driver para obter o status online do dispositivo e, se o dispositivo tiver botões de push, para obter o botão status.
Defina o membro lVal da estrutura VAL passada como 1 se o dispositivo estiver online e funcionando corretamente. Se lVal for definido como qualquer valor diferente de 1, o dispositivo será considerado offline e falhará no teste do dispositivo em Painel de Controle.
Se o dispositivo der suporte a botões que não usam interrupções do dispositivo e um botão tiver sido pressionado, o membro pGuid da estrutura val passada deverá ser definido como o GUID do evento de botão. Se nenhum botão tiver sido pressionado, aponte pGuid para o valor GUID_NULL. Isso sinaliza que não há eventos pendentes.
Esse comando será necessário se o dispositivo der suporte a eventos sondados ou se você quiser que o dispositivo exiba status on-line.