Função KsPinGenerateEvents (ks.h)
A função KsPinGenerateEvents gera eventos de um tipo indicado que estão presentes na lista de eventos do Pin.
Sintaxe
void KsPinGenerateEvents(
[in] PKSPIN Pin,
[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] Pin
Um ponteiro para a estrutura de KSPIN na qual gerar eventos.
[in, optional] EventSet
Um ponteiro para o GUID do conjunto de eventos a ser correspondido para determinar quais eventos gerar. Se esse parâmetro for NULL, o GUID de conjunto 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. 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 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). Protótipo da seguinte maneira:
BOOLEAN CallBack
(IN PVOID Context,
IN PKSEVENT_ENTRY EventEntry);
KsPinGenerateEvents passa o parâmetro CallBackContext inalterado como o parâmetro de Contexto para o retorno de chamada. A função de retorno de chamada retorna verdadeiro se EventEntry deve ser gerado. Caso contrário, ele retornará FALSE.
[in, optional] CallBackContext
Um ponteiro para um contexto especificado pelo chamador que é passado para a função de retorno de chamada de Retorno de Chamada.
Valor de retorno
Nenhum
Observações
Ao chamar essa função, um minidriver deve colocar data e CallBackContext em um segmento de dados bloqueado e não pageable. O de Retorno de Chamada é 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 no DX8 apenas: 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 três condições a seguir se mantiverem:
O evento está presente na lista de eventos *Pin*e *EventId *corresponde à ID do evento.
EventSet corresponde ao GUID definido do evento ou é NULL.
*CallBack *é NULL ou autoriza a correspondência.
Para obter mais informações, consulte tratamento de eventos no AVStream e de eventos KS.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no DirectX 8.0 e versões posteriores do DirectX. |
da Plataforma de Destino | Área de trabalho |
cabeçalho | ks.h (incluir Ks.h) |
biblioteca | Ks.lib |
IRQL | <=DISPATCH_LEVEL (Consulte comentários) |