Compartilhar via


Função KsFilterGenerateEvents (ks.h)

A função KsFilterGenerateEvents gera eventos de um tipo indicado que estão presentes na lista de eventos do Filtro.

Sintaxe

void KsFilterGenerateEvents(
  [in]           PKSFILTER                  Filter,
  [in, optional] const GUID                 *EventSet,
  [in]           ULONG                      EventId,
  [in]           ULONG                      DataSize,
  [in]           PVOID                      Data,
  [in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
  [in, optional] PVOID                      CallBackContext
);

Parâmetros

[in] Filter

Um ponteiro para uma estrutura KSFILTER na qual gerar eventos.

[in, optional] EventSet

Um ponteiro para o GUID do conjunto de eventos para corresponder à determinação de quais eventos gerar. Se esse parâmetro for NULL, o GUID do conjunto de eventos não será levado em conta para determinar eventos correspondentes.

[in] EventId

A ID do evento a ser correspondida para determinar quais eventos gerar.

[in] DataSize

O tamanho de Dados em bytes.

[in] Data

Um ponteiro para um buffer de dados. Especifique se está gerando um evento de dados.

[in, optional] CallBack

Um ponteiro para uma função especificada pelo chamador que é chamada para determinar se um determinado evento deve ser gerado. Se for NULL, nenhuma verificação de retorno de chamada será executada para determinar se um evento deve ser gerado (somente *EventSet *e EventId são usados). Para obter mais informações, consulte a seção Comentários abaixo.

[in, optional] CallBackContext

Um ponteiro opcional para um contexto especificado pelo chamador que é passado para a função de retorno de chamada CallBack. Para obter mais informações, consulte a seção Comentários abaixo.

Retornar valor

Nenhum

Comentários

Ao chamar essa função, um minidriver deve colocar Data e CallBackContext em um segmento de dados bloqueado e não pageable. Além disso, observe que o CallBack é feito em DISPATCH_LEVEL. A função de retorno de chamada deve estar em um segmento bloqueado e deve estar preparada para ser executada em IRQL = DISPATCH_LEVEL. Observe que há um problema adicional somente no DX8: EventSet deve estar em um segmento de dados bloqueado.

Essa é uma chamada de função embutida para KsGenerateEvents que executa o typecasting necessário. Os minidrivers geralmente devem chamar essa versão em vez de chamar diretamente KsGenerateEvents.

Um evento será gerado se as seguintes condições se mantiverem:

  • O evento está presente na lista de eventos do Filter e EventId corresponde à ID do evento

  • EventSet corresponde ao GUID definido do evento ou é NULL

  • CallBack é NULL ou autoriza a correspondência

CallBack é um retorno de chamada especificado pelo chamador usado para determinação de correspondência adicional. Ele é protótipo da seguinte maneira:

BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);

O AVStream passa o conteúdo do parâmetro callBackContext da rotina KsFilterGenerateEvents no parâmetro Context desse retorno de chamada. EventEntry é um ponteiro para uma estrutura KSEVENT_ENTRY que especifica o evento que seria gerado. A função de retorno de chamada deverá retornar TRUE se esse evento deve ser gerado.

Para obter mais informações, consulte Tratamento de eventos em eventos AVStream e KS.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX.
Plataforma de Destino Área de Trabalho
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib
IRQL <=DISPATCH_LEVEL (consulte a seção Comentários.)

Confira também

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents