Manipulação de eventos no AVStream
Os filtros e pinos do AVStream descrevem propriedades, eventos e métodos aos quais dão suporte fornecendo uma estrutura KSAUTOMATION_TABLE no membro AutomationTable de uma estrutura KSFILTER_DESCRIPTOR ou uma estrutura KSPIN_DESCRIPTOR_EX . Para obter mais informações, consulte Descritores AVStream.
Para dar suporte a eventos, um minidriver AVStream fornece uma matriz de estruturas KSEVENT_SET em uma tabela de automação. Cada estrutura KSEVENT_SET contém uma matriz de estruturas KSEVENT_ITEM . Cada estrutura KSEVENT_ITEM descreve como o minidriver dá suporte a um evento específico.
O minidriver pode personalizar o comportamento do evento fornecendo manipuladores AVStrMiniAddEvent e AVStrMiniRemoveEvent nas estruturas KSEVENT_ITEM.
Quando o AVStream recebe uma solicitação de habilitação de evento, ele gera uma estrutura KSEVENT_ENTRY. Se o minidriver tiver fornecido um manipulador AVStrAddEvent , o AVStream passará um ponteiro para a estrutura KSEVENT_ENTRY na chamada para AVStrAddEvent.
Se você não fornecer um manipulador AVStrAddEvent , por padrão, o AVStream adicionará o evento à lista de objetos. O minidriver não recebe um ponteiro KSEVENT_ENTRY . O minidriver pode disparar o evento chamando KsFilterGenerateEvents ou KsPinGenerateEvents.