Partager via


KsPinGenerateEvents, fonction (ks.h)

La fonction KsPinGenerateEvents génère des événements d’un type indiqué présents dans la liste d’événements de Pin.

Syntaxe

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

Paramètres

[in] Pin

Pointeur vers la structure KSPIN sur laquelle générer des événements.

[in, optional] EventSet

Pointeur vers le GUID de jeu d’événements à mettre en correspondance pour déterminer les événements à générer. Si ce paramètre a la valeur NULL, le GUID défini 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 en octets des données avec lesquelles générer l’événement de données.

[in, optional] 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 la 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). Prototype comme suit :

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

KsPinGenerateEvents transmet le paramètre CallBackContext inchangé en tant que paramètre Context pour le rappel. La fonction de rappel retourne TRUE si EventEntry doit être généré. Sinon, il retourne FALSE.

[in, optional] CallBackContext

Pointeur vers un contexte spécifié par l’appelant qui est passé à la fonction de rappel CallBack.

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. 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 la réception 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 trois conditions suivantes sont remplies :

  • L’événement est présent dans la liste *event list de *Pin et *EventId *correspond à l’ID de l’événement.

  • EventSet correspond au GUID défini de l’événement ou a la valeur NULL.

  • *CallBack *a la valeur NULL ou autorise la correspondance.

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

Voir aussi

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsGenerateEvents