Gestion des événements dans AVStream
Les filtres et les broches AVStream décrivent les propriétés, les événements et les méthodes qu’ils prennent en charge en fournissant une structure KSAUTOMATION_TABLE dans le membre AutomationTable d’une structure KSFILTER_DESCRIPTOR ou d’une structure KSPIN_DESCRIPTOR_EX . Pour plus d’informations, consultez Descripteurs AVStream.
Pour prendre en charge les événements, un minidriver AVStream fournit un tableau de structures KSEVENT_SET dans une table Automation. Chaque structure KSEVENT_SET contient un tableau de structures KSEVENT_ITEM . Chaque structure KSEVENT_ITEM décrit comment le minidriver prend en charge un événement spécifique.
Le minidriver peut personnaliser le comportement des événements en fournissant des gestionnaires AVStrMiniAddEvent et AVStrMiniRemoveEvent dans les structures KSEVENT_ITEM.
Quand AVStream reçoit une demande d’activation d’événement, il génère une structure KSEVENT_ENTRY. Si le minidriver a fourni un gestionnaire AVStrAddEvent , AVStream transmet un pointeur vers la structure KSEVENT_ENTRY dans l’appel à AVStrAddEvent.
Si vous ne fournissez pas de gestionnaire AVStrAddEvent , AVStream ajoute par défaut l’événement à la liste d’objets. Votre minidriver ne reçoit pas de pointeur KSEVENT_ENTRY . Votre minidriver peut déclencher l’événement en appelant KsFilterGenerateEvents ou KsPinGenerateEvents.