Condividi tramite


Funzione KsPinGenerateEvents (ks.h)

La funzione KsPinGenerateEvents genera eventi di un tipo indicato presente nell'elenco eventi pin.

Sintassi

void KsPinGenerateEvents(
  [in]           PKSPIN                     Pin,
  [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] Pin

Puntatore alla struttura KSPIN in cui generare eventi.

[in, optional] EventSet

Puntatore al GUID del set di eventi da trovare per determinare gli eventi da generare. Se questo parametro è NULL, il GUID impostato non viene considerato per determinare gli eventi corrispondenti.

[in] EventId

ID evento da trovare per determinare gli eventi da generare.

[in] DataSize

Dimensioni in byte dei dati con cui generare l'evento di dati.

[in, optional] 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 NULL non viene eseguita alcuna verifica di callback per determinare se deve essere generato un evento (viene usato solo * EventSet *e EventId ). Prototipo come indicato di seguito:

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

KsPinGenerateEvents passa il parametro CallBackContext invariato come parametro Context per il callback. La funzione di callback restituisce TRUE se EventEntry deve essere generato. In caso contrario, restituisce FALSE.

[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. 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 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 tre condizioni seguenti:

  • L'evento è presente nell'elenco di eventi *Pin e *EventId *corrisponde all'ID dell'evento.

  • EventSet corrisponde al GUID impostato dell'evento o è NULL.

  • *CallBack *è NULL o autorizza la corrispondenza.

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

Vedi anche

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsGenerateEvents