Condividi tramite


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

Vedi anche

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents