Partager via


KsFilterGenerateEvents, fonction (ks.h)

La fonction KsFilterGenerateEvents génère des événements d’un type indiqué qui sont 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 à mettre en correspondance pour déterminer quels événements générer. Si ce paramètre est 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 de 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ée pour déterminer si un événement donné doit être généré. S’il s’agit NULL, aucune vérification de rappel n’est effectuée pour déterminer si un événement doit être généré (uniquement *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

Aucun

Remarques

Lors de l’appel de cette fonction, un minidriver doit placer Data et CallBackContext dans un segment de données verrouillé et non modifiable. Notez également que le callback 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 la diffusion de type 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 conservées :

  • L’événement est présent dans Filter's event list and EventId correspond à l’ID de l’événement

  • EventSet correspond au GUID défini de l’événement ou est NULL

  • callback est NULL ou autorise la correspondance

callback est un rappel spécifié par l’appelant utilisé pour une détermination de correspondance supplémentaire. Il est prototypené comme suit :

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

AVStream transmet le contenu du paramètre KsFilterGenerateEvents routine CallBackContext 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 AVStream et événements KS.

Exigences

Exigence Valeur
client minimum 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 Bureau
d’en-tête ks.h (include Ks.h)
bibliothèque Ks.lib
IRQL <=DISPATCH_LEVEL (voir la section Remarques.)

Voir aussi

KSEVENT_ENTRY

KsAddEvent

KsGenerateEvents

KsPinGenerateEvents