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 |