Ereignisbehandlung in AVStream

AVStream-Filter und -Pins beschreiben die von ihnen unterstützten Eigenschaften, Ereignisse und Methoden, indem sie eine KSAUTOMATION_TABLE Struktur im AutomationTable-Member einer KSFILTER_DESCRIPTOR-Struktur oder einer KSPIN_DESCRIPTOR_EX Struktur bereitstellen. Weitere Informationen finden Sie unter AVStream-Deskriptoren.

Zur Unterstützung von Ereignissen stellt ein AVStream-Minidriver ein Array von KSEVENT_SET Strukturen in einer Automatisierungstabelle bereit. Jede KSEVENT_SET-Struktur enthält ein Array von KSEVENT_ITEM Strukturen. Jede KSEVENT_ITEM Struktur beschreibt, wie der Minidriver ein bestimmtes Ereignis unterstützt.

Der Minidriver kann das Ereignisverhalten anpassen, indem er AVStrMiniAddEvent - und AVStrMiniRemoveEvent-Handler in den KSEVENT_ITEM-Strukturen angibt.

Wenn AVStream eine Ereignisaktiviere-Anforderung empfängt, generiert es eine KSEVENT_ENTRY-Struktur. Wenn der Minidriver einen AVStrAddEvent-Handler bereitgestellt hat, übergibt AVStream einen Zeiger auf die KSEVENT_ENTRY-Struktur im Aufruf von AVStrAddEvent.

Wenn Sie keinen AVStrAddEvent-Handler bereitstellen, fügt AVStream das Ereignis standardmäßig der Objektliste hinzu. Ihr Minidriver erhält keinen KSEVENT_ENTRY-Zeiger . Ihr Minidriver kann das Ereignis auslösen, indem KsFilterGenerateEvents oder KsPinGenerateEvents aufgerufen wird.