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