Partager via


KsGenerateEvents, fonction (ks.h)

La fonction KsGenerateEvents génère des événements d’un type indiqué qui sont présents dans la liste d’événements d’Object.

Syntaxe

void KsGenerateEvents(
  [in]           PVOID                      Object,
  [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] Object

Objet sur lequel générer des événements. Il peut s’agir d’un objet de filtre ou de broche AVStream.

[in, optional] EventSet

Le GUID d’événement a défini la 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 à inclure dans la notification d’événement. Si le pilote n’a pas besoin de transmettre d’informations supplémentaires via la notification, définissez ce paramètre facultatif sur NULL.

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

[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. 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é.

Les minidrivers n’appellent généralement pas cette fonction directement et utilisent plutôt l’une des versions qui effectuent le casting approprié : KsFilterGenerateEvents ou KsPinGenerateEvents.

Un événement est généré s’il est présent dans la liste *event de *Object et *EventId *correspond à l’ID de l’événement, EventSet correspond au GUID défini de l’événement ou est NULL, et *CallBack *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 KsGenerateEvents 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 Universal
En-tête ks.h (inclure Ks.h)
Bibliothèque Ks.lib
IRQL <=DISPATCH_LEVEL

Voir aussi

KSEVENT_ENTRY

KsAddEvent

KsFilterGenerateEvents

KsPinGenerateEvents