Funzione KsPinGenerateEvents (ks.h)
La funzione KsPinGenerateEvents genera eventi di un tipo indicato presenti nell'elenco eventi di 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 di KSPIN su cui generare eventi.
[in, optional] EventSet
Puntatore al 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. 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 (vengono usati 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 posizionare Data 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 in DX8 solo: 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 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 oppure è NULL.
*CallBack *è null o autorizza la corrispondenza.
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 | Desktop |
intestazione | ks.h (include Ks.h) |
libreria | Ks.lib |
IRQL | <=DISPATCH_LEVEL (vedere la sezione Note) |