Share via


Funzione KsGenerateEvents (ks.h)

La funzione KsGenerateEvents genera eventi di un tipo indicato presenti nell'elenco di 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 in 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 quali eventi generare. Se questo parametro è NULL, il GUID impostato non viene preso in considerazione per determinare gli eventi corrispondenti.

[in] EventId

ID evento da trovare 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 che viene chiamata per determinare se deve essere generato un determinato evento. Se è 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 inserire Dati 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 esiste un problema aggiuntivo solo in DX8: 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 o è NULL e *CallBack *è NULL o autorizza la corrispondenza.

CallBack è un callback specificato dal chiamante usato per determinare la corrispondenza aggiuntiva. Viene prototipo come indicato di seguito:

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

AVStream passa il contenuto del parametro della routine KsGenerateEventsCallBackContext 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 EVENTI AVStream e KS.

Requisiti

Requisito Valore
Client minimo supportato Disponibile nei sistemi operativi Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX.
Piattaforma di destinazione Universale
Intestazione ks.h (include Ks.h)
Libreria Ks.lib
IRQL <=DISPATCH_LEVEL

Vedi anche

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents