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 |