KsFilterGenerateEvents, fonction (ks.h)
La fonction KsFilterGenerateEvents génère des événements d’un type indiqué présents dans la liste d’événements de Filter.
Syntaxe
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
);
Paramètres
[in] Filter
Pointeur vers une structure KSFILTER sur laquelle générer des événements.
[in, optional] EventSet
Pointeur vers le GUID du jeu d’événements à correspondre pour déterminer les événements à générer. Si ce paramètre a la valeur NULL, le GUID du jeu d’événements n’est pas pris en compte pour déterminer les événements correspondants.
[in] EventId
ID d’événement à mettre en correspondance pour déterminer les événements à générer.
[in] DataSize
Taille des données en octets.
[in] Data
Pointeur vers une mémoire tampon de données. Spécifiez si vous générez un événement de données.
[in, optional] CallBack
Pointeur vers une fonction spécifiée par l’appelant qui est appelé pour déterminer si un événement donné doit être généré. Si cette valeur est NULL, aucune vérification de rappel n’est effectuée pour déterminer si un événement doit être généré (seuls *EventSet *et EventId sont utilisés). Pour plus d’informations, consultez la section Remarques ci-dessous.
[in, optional] CallBackContext
Pointeur facultatif vers un contexte spécifié par l’appelant qui est passé à la fonction de rappel CallBack. Pour plus d’informations, consultez la section Remarques ci-dessous.
Valeur de retour
None
Remarques
Lors de l’appel de cette fonction, un minidriver doit placer Data et CallBackContext dans un segment de données verrouillé et non pagéable. En outre, notez que le rappel est effectué à DISPATCH_LEVEL. La fonction de rappel doit se trouver dans un segment verrouillé et doit être prête à s’exécuter à IRQL = DISPATCH_LEVEL. Notez qu’il existe un problème supplémentaire dans DX8 uniquement : EventSet doit se trouver dans un segment de données verrouillé.
Il s’agit d’un appel de fonction inline à KsGenerateEvents qui effectue le typecasting nécessaire. Les minidrivers doivent généralement appeler cette version au lieu d’appeler directement KsGenerateEvents.
Un événement est généré si les conditions suivantes sont remplies :
L’événement est présent dans la liste des événements de Filter et EventId correspond à l’ID de l’événement
EventSet correspond au GUID défini de l’événement ou a la valeur NULL
Le rappel a la valeur NULL ou autorise la correspondance
Le rappel est un rappel spécifié par l’appelant utilisé pour la détermination de correspondance supplémentaire. Il est prototype comme suit :
BOOLEAN CallBack (IN PVOID Context, IN PKSEVENT_ENTRY EventEntry);
AVStream transmet le contenu du paramètre callBackContext de la routine KsFilterGenerateEvents dans le paramètre Context de ce rappel. EventEntry est un pointeur vers une structure KSEVENT_ENTRY qui spécifie l’événement qui serait généré. La fonction de rappel doit retourner TRUE si cet événement doit être généré.
Pour plus d’informations, consultez Gestion des événements dans LES événements AVStream et KS.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Microsoft Windows XP et les systèmes d’exploitation ultérieurs et DirectX 8.0 et versions ultérieures de DirectX. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ks.h (inclure Ks.h) |
Bibliothèque | Ks.lib |
IRQL | <=DISPATCH_LEVEL (voir la section Remarques).) |