Funzione KsFilterGenerateEvents (ks.h)
La funzione KsFilterGenerateEvents genera eventi di un tipo indicato presente nell'elenco eventi di Filter.
Sintassi
void KsFilterGenerateEvents(
[in] PKSFILTER Filter,
[in, optional] const GUID *EventSet,
[in] ULONG EventId,
[in] ULONG DataSize,
[in] PVOID Data,
[in, optional] PFNKSGENERATEEVENTCALLBACK CallBack,
[in, optional] PVOID CallBackContext
);
Parametri
[in] Filter
Puntatore a una struttura KSFILTER in cui generare eventi.
[in, optional] EventSet
Puntatore al GUID del set di eventi da corrispondere per la determinazione degli eventi da generare. Se questo parametro è NULL, il GUID del set di eventi non viene preso in considerazione per determinare gli eventi corrispondenti.
[in] EventId
ID evento da trovare per determinare gli eventi da generare.
[in] DataSize
Dimensioni dei dati in byte.
[in] Data
Puntatore a un buffer di dati. Specificare se si genera un evento di dati.
[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 (viene usato solo * EventSet *e EventId ). Per altre informazioni, vedere la sezione Osservazioni di seguito.
[in, optional] CallBackContext
Puntatore facoltativo a un contesto specificato dal chiamante passato alla funzione callback CallBack. Per altre informazioni, vedere la sezione Osservazioni di seguito.
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 effettuato 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 solo in DX8:EventSet deve trovarsi in un segmento di dati bloccato.
Si tratta di una chiamata di funzione inline a KsGenerateEvents che esegue il typecast necessario. I minidriver devono in genere chiamare questa versione anziché chiamare direttamente KsGenerateEvents.
Un evento viene generato se sono presenti le condizioni seguenti:
L'evento è presente nell'elenco eventi di Filter e EventId corrisponde all'ID dell'evento
EventSet corrisponde al GUID impostato dell'evento o è NULL
CallBack è NULL o autorizza la corrispondenza
CallBack è un callback specificato dal chiamante utilizzato per la determinazione aggiuntiva della corrispondenza. Viene prototipo come indicato di seguito:
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream passa il contenuto del parametro della routine KsFilterGenerateEventsCallBackContext nel parametro Context del callback. EventEntry è un puntatore a una struttura KSEVENT_ENTRY che specifica l'evento generato. La funzione di callback deve restituire TRUE se questo evento deve essere generato.
Per altre informazioni, vedere Gestione eventi in AVStream ed eventi KS.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Microsoft Windows XP e versioni successive e DirectX 8.0 e versioni successive di DirectX. |
Piattaforma di destinazione | Desktop |
Intestazione | ks.h (include Ks.h) |
Libreria | Ks.lib |
IRQL | <=DISPATCH_LEVEL (vedere sezione Osservazioni). |