Condividi tramite


Funzione KsGenerateEvents (ks.h)

La funzione KsGenerateEvents genera eventi di un tipo indicato presenti nell'elenco eventi di Object.

Sintassi

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
);

Parametri

[in] Object

Oggetto su cui generare eventi. Può trattarsi di un filtro AVStream o di un oggetto pin.

[in, optional] EventSet

GUID del set di eventi da associare per determinare gli eventi da generare. Se questo parametro è NULL, il GUID impostato non viene preso in considerazione per determinare gli eventi corrispondenti.

[in] EventId

ID evento da associare per determinare gli eventi da generare.

[in] DataSize

Dimensione in byte dei dati con cui generare l'evento di dati.

[in, optional] Data

Puntatore a un buffer di dati da includere nella notifica degli eventi. Se il driver non deve trasmettere informazioni aggiuntive tramite la notifica, impostare questo parametro facoltativo su NULL.

[in, optional] CallBack

Puntatore a una funzione specificata dal chiamante chiamata per determinare se deve essere generato un determinato evento. Se si tratta di NULL, non viene eseguita alcuna verifica di callback per determinare se deve essere generato un evento (vengono usati solo *EventSet *e EventId).

[in, optional] CallBackContext

Puntatore a un contesto specificato dal chiamante passato alla funzione di callback CallBack.

Valore restituito

Nessuno

Osservazioni

Quando si chiama questa funzione, un minidriver deve posizionare Data e CallBackContext in un segmento di dati bloccato e non impaginabile. Si noti inoltre che il callback viene eseguito in DISPATCH_LEVEL. La funzione di callback deve trovarsi in un segmento bloccato e deve essere preparata per l'esecuzione in IRQL = DISPATCH_LEVEL. Si noti che è presente un problema aggiuntivo in DX8 solo: EventSet deve trovarsi in un segmento di dati bloccato.

I minidriver in genere non chiamano direttamente questa funzione e usano invece una delle versioni che eseguono il cast appropriato: KsFilterGenerateEvents o KsPinGenerateEvents.

Un evento viene generato se è presente nell'elenco di eventi *Object e *EventId *corrisponde all'ID dell'evento, EventSet corrisponde al GUID impostato dell'evento oppure è NULLe *CallBack *è NULL o autorizza la corrispondenza.

callback è un callback specificato dal chiamante usato per determinare la corrispondenza aggiuntiva. Viene prototipo come segue:

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

AVStream passa il contenuto del KsGenerateEvents parametro della routine CallBackContext nel parametro Context di questo callback. EventEntry è un puntatore a una struttura KSEVENT_ENTRY che specifica l'evento che verrebbe generato. La funzione di callback deve restituire TRUE se questo evento deve essere generato.

Per altre informazioni, vedere Gestione degli eventi in AVStream e eventi KS.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Microsoft Windows XP e nei sistemi operativi successivi e in DirectX 8.0 e versioni successive di DirectX.
piattaforma di destinazione Universale
intestazione ks.h (include Ks.h)
libreria Ks.lib
IRQL <=DISPATCH_LEVEL

Vedere anche

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents