Função KsGenerateEvents (ks.h)
A função KsGenerateEvents gera eventos de um tipo indicado que estão presentes na lista de eventos do Objeto.
Sintaxe
void KsGenerateEvents(
[in] PVOID Object,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in, optional] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
Parâmetros
[in] Object
O objeto no qual gerar eventos. Pode ser um filtro AVStream ou um objeto pin.
[in, optional] EventSet
O GUID do conjunto de eventos a ser correspondido para determinar quais eventos gerar. Se esse parâmetro for NULL, definir GUID 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 em bytes dos dados com os quais gerar o evento de dados.
[in, optional] Data
Um ponteiro para um buffer de dados a ser incluído na notificação de evento. Se o driver não precisar transmitir informações adicionais por meio da notificação, defina esse parâmetro opcional como NULL.
[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).
[in, optional] CallBackContext
Um ponteiro para um contexto especificado pelo chamador que é passado para a função de retorno de chamada CallBack.
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.
Os minidrivers normalmente não chamam essa função diretamente e, em vez disso, usam uma das versões que executa a conversão apropriada: KsFilterGenerateEvents ou KsPinGenerateEvents.
Um evento será gerado se ele estiver presente na *lista de eventos do *Object e *EventId *corresponder à ID do evento, EventSet corresponder ao GUID definido do evento ou for NULL e *CallBack *for NULL ou autorizar 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 KsGenerateEvents 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 | Universal |
Cabeçalho | ks.h (inclua Ks.h) |
Biblioteca | Ks.lib |
IRQL | <=DISPATCH_LEVEL |