Función KsGenerateEvents (ks.h)

La función KsGenerateEvents genera eventos de un tipo indicado que están presentes en la lista de eventos del objeto.

Sintaxis

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

Objeto en el que se van a generar eventos. Puede ser un filtro AVStream o un objeto pin.

[in, optional] EventSet

Guid del conjunto de eventos que debe coincidir para determinar qué eventos se van a generar. Si este parámetro es NULL, no se tiene en cuenta el GUID establecido para determinar los eventos coincidentes.

[in] EventId

Identificador de evento que debe coincidir para determinar qué eventos se van a generar.

[in] DataSize

Tamaño en bytes de los datos con los que se va a generar el evento de datos.

[in, optional] Data

Puntero a un búfer de datos que se va a incluir en la notificación de eventos. Si el controlador no necesita transmitir información adicional a través de la notificación, establezca este parámetro opcional en NULL.

[in, optional] CallBack

Puntero a una función especificada por el autor de la llamada que se llama para determinar si se debe generar un evento determinado. Si es NULL, no se realiza ninguna comprobación de devolución de llamada para determinar si se debe generar un evento (solo se usan *EventSet *y EventId ).

[in, optional] CallBackContext

Puntero a un contexto especificado por el autor de la llamada que se pasa a la función callback CallBack.

Valor devuelto

None

Observaciones

Al llamar a esta función, un minidriver debe colocar Data y CallBackContext en un segmento de datos bloqueado y no paginable. Además, tenga en cuenta que la devolución de llamada se realiza en DISPATCH_LEVEL. La función de devolución de llamada debe estar en un segmento bloqueado y debe estar preparada para ejecutarse en IRQL = DISPATCH_LEVEL. Tenga en cuenta que hay un problema adicional solo en DX8: EventSet debe estar en un segmento de datos bloqueado.

Los minidrivers normalmente no llaman a esta función directamente y, en su lugar, usan una de las versiones que realizan la conversión adecuada: KsFilterGenerateEvents o KsPinGenerateEvents.

Se genera un evento si está presente en la lista de eventos *Del objeto y *EventId *coincide con el identificador del evento, EventSet coincide con el GUID establecido del evento o es NULL, y *CallBack *es NULL o autoriza la coincidencia.

CallBack es una devolución de llamada especificada por el autor de la llamada que se usa para la determinación de coincidencia adicional. Se crea un prototipo de la siguiente manera:

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

AVStream pasa el contenido del parámetro CallBackContext de la rutina KsGenerateEvents en el parámetro Context de esta devolución de llamada. EventEntry es un puntero a una estructura de KSEVENT_ENTRY que especifica el evento que se generaría. La función de devolución de llamada debe devolver TRUE si se debe generar este evento.

Para obtener más información, consulte Control de eventos en EVENTOS AVStream y KS.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Microsoft Windows XP y sistemas operativos posteriores y DirectX 8.0 y versiones posteriores de DirectX.
Plataforma de destino Universal
Encabezado ks.h (incluya Ks.h)
Library Ks.lib
IRQL <=DISPATCH_LEVEL

Consulte también

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents